1

因此,我的任务是创建一个查询,该查询使用来自两个独立服务器上的两个独立数据库的数据。有人告诉我,链接服务器不是一种选择,但有一个 sql 命令可用于正确寻址我要连接的服务器。谁能告诉我该命令可能是什么?

前任:

服务器 01 数据库_01 表 01

服务器 02 数据库_02 表02

如果我有一个链接服务器,我可以简单地做到这一点。

SELECT s2.*, s1.somefield
FROM [Server 02].[Database_02].[Table02] s2
JOIN  [Server 01].[Database_01].[Table01] s1
on s2.id = s1.id

由于我没有那个选项,如果我连接到服务器 01,我需要找到另一种方法来引用服务器 02。

4

1 回答 1

0

您需要OPENROWSETOPENDATASOURCE

在这里找到示例:

开放式:

SELECT *
FROM OPENROWSET('SQLNCLI',
   'DRIVER={SQL Server};SERVER=MyServer;UID=MyUserID;PWD=MyCleverPassword',
   'select @@ServerName') 

开放数据源:

SELECT * 
FROM OPENDATASOURCE ('SQLNCLI', -- or SQLNCLI
   'Data Source=OtherServer\InstanceName;Catalog=RemoteDB;User ID=SQLLogin;Password=Secret;').RemoteDB.dbo.SomeTable
于 2013-08-28T22:56:36.457 回答