[英]Joining Table via Linked Server
我有2個服務器和2個不同的數據庫。
S1(服務器)和DB1(數據庫)和T1(表)
和
S2(服務器)和DB2(數據庫)和T2(表)
DB1具有到S2 DB2的鏈接服務器。
所以我可以運行一個查詢
SELECT * FROM T1
JOIN [S2].[DB2].[T2] T2
ON T1.[ID] = T2.[ID]
這可以正常運行。
但是,我如何以相反的方向運行它
例如
SELECT * FROM T2
JOIN [S1].[DB1].[T1] T1
ON T2.[ID] = T1.[ID]
出現以下錯誤: “找不到服務器[S1]。[DB1]。[T1]”
無論如何,我可以朝這個方向加入而不必創建從S2到S1的鏈接服務器?
該查詢:
SELECT *
FROM T2 JOIN
[S1].[DB1].[T1] T1
ON T2.[ID] = T1.[ID];
假定T2
是本地的。 您可以進行混合:
SELECT *
FROM [S2].[DB2].[T2] T2 JOIN
[DB1].[T1] T1
ON T2.[ID] = T1.[ID];
可以將服務器鏈接到自身,因此,如果這樣做,則可以在兩個服務器上運行以下相同的查詢:
SELECT *
FROM [S2].[DB2].[T2] T2 JOIN
[S2].[DB1].[T1] T1
ON T2.[ID] = T1.[ID];
如果您要在兩個服務器上實現“等效”查詢,則同義詞可能會有所幫助。 您可能對此問題的答案感興趣。
戈登的答案更為詳盡,但您可以將第二個查詢重寫為:
SELECT *
FROM [S2].[DB2].[T2] T2
JOIN T1
ON T2.ID = T1.ID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.