因此,我的任务是创建一个查询,该查询使用来自两个独立服务器上的两个独立数据库的数据。有人告诉我,链接服务器不是一个选项,但有一个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的方法。
您需要OPENROWSET或OPENDATASOURCE
在此处找到示例:
OPENROWSET:
SELECT *
FROM OPENROWSET('SQLNCLI',
'DRIVER={SQL Server};SERVER=MyServer;UID=MyUserID;PWD=MyCleverPassword',
'select @@ServerName')
OPENDATASOURCE:
SELECT *
FROM OPENDATASOURCE ('SQLNCLI', -- or SQLNCLI
'Data Source=OtherServerInstanceName;Catalog=RemoteDB;User ID=SQLLogin;Password=Secret;').RemoteDB.dbo.SomeTable