2013-08-28 79 views
1

因此,我的任務是創建一個使用來自兩個獨立服務器上兩個獨立數據庫的數據的查詢。我被告知連接服務器不會是一個選項,但有一個sql命令可以用來正確地尋址我想連接的服務器。任何人都可以告訴我該命令可能是什麼?通過另一個未鏈接的Sever連接連接到SQL Server

EX:

服務器01 Database_01 Table01

服務器02 Database_02 TABLE02

如果我有一個鏈接的服務器,我可以簡單地做到這一點。

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

因爲我沒有這樣的選擇,我需要找到另一種方式來參考服務器02,如果我連接到服務器01

回答

0

你會需要或者OPENROWSETOPENDATASOURCE

實測值例子here

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=OtherServer\InstanceName;Catalog=RemoteDB;User ID=SQLLogin;Password=Secret;').RemoteDB.dbo.SomeTable 
+0

謝謝。我實際上將這些視爲替代方案。 – Xerc