2012-07-11 107 views
53

我們可以對來自不同數據庫的兩個表使用join操作嗎?如果是,那麼該怎麼辦?我們可以使用連接兩個不同的數據庫表嗎?

兩個數據庫位於同一臺服務器上,而DBMS相同。

+3

@vivekrai - 在這種情況下,所有你需要的是你的前添加在數據庫名稱SELECT子句。類似於'SELECT * FROM DBOne.dbo.Table1 AS t1 INNER JOIN DBTwo.dbo.Table2 t2 ON t2.ID = t1.ID' – 2012-07-11 06:49:44

+15

關閉爲「過於本地化」?真的嗎?有10 000個視圖?這很瘋狂 ! – JYL 2015-07-25 12:57:01

+2

爲什麼你接受這個答案如果與你的問題無關? – vivoconunxino 2016-11-29 09:45:58

回答

111

只要這些數據庫位於同一臺服務器上,SQL Server允許您連接來自不同數據庫的表。連接語法是相同的;唯一的區別是你必須完全指定表名。

假設您在同一臺服務器上有兩個數據庫 - Db1Db2Db1有一個名爲Clients的表,其列ClientIdDb2有一個名爲Messages的表,列ClientId(讓我們來看看爲什麼這些表位於不同的數據庫中)。

現在,執行您將使用此查詢上述表聯接:

select * 
from Db1.dbo.Clients c 
join Db2.dbo.Messages m on c.ClientId = m.ClientId 
+0

簡單而有用..很好的答案 – Vikram 2015-06-20 13:40:32

+18

這應該是被接受的答案。 – JYL 2015-07-25 12:58:04

+9

也許應該指出,兩個數據庫必須在相同的安全上下文中可訪問。換句話說,如果您使用兩個數據庫的不同憑據登錄,則上述操作將無法工作。在這種情況下,您可能必須使用「鏈接服務器」。 – 2016-01-06 10:49:40

0
SELECT ... 
FROM A.table t1 
JOIN B.table2 t2 ON t2.column = t1.col 
相關問題