如何在存儲過程中連接不同服務器中的表格?連接來自不同服務器的表格
4
A
回答
7
如果沒有更多的細節,這是很難給予直接的例子,但這裏的基本思想是:
首先,存儲過程之外,主機服務器(存儲過程將在服務器上)必須知道關於第二臺服務器,包括(可能)登錄信息。
在您的主服務器上,運行sp_addlinkedserver存儲過程。這隻需做一次:
exec sp_addlinkedserver @server=’(your second server)‘;
如果您需要提供登錄信息到第二個服務器(例如,過程中不能與在初始數據庫中使用相同的憑據登錄連接),與sp_addlinkedsrvlogin存儲過程中這樣做:
exec sp_addlinkedsrvlogin @rmtsrvname=’(your second server)‘,@useself=false, @rmtuser=’yourusername‘, @rmtpassword=’yourpassword‘;
然後,在你的存儲過程,你可以指定第二臺服務器上的表:
SELECT table1.*
FROM table1
INNER JOIN [secondserver].[database].[schema].[table] AS table2 ON
table1.joinfield = table2.joinfield
1
在加入表之前,您必須先連接兩臺服務器。一旦他們被鏈接,你可以使用下面的查詢和替換服務器,數據庫&表名。
記住在DB2中執行SQL如下:
EXEC sp_addlinkedserver DB1
GO
-- below statement connects sa account of DB2 to DB1
EXEC sp_addlinkedsrvlogin @rmtsrvname = 'DB1', @useself = 'false', @locallogin = 'sa', @rmtuser = 'sa', @rmtpassword = 'DB1 sa pwd'
GO
SELECT a.columns
FROM DB1.database_name.dbo.table_name a
INNER JOIN DB2.database_name.dbo.table_name b
ON a.columnId = b.columnId
GO
鏈接服務器 - http://msdn.microsoft.com/en-us/library/ms188279.aspx
1
1.檢查,看看,如果你有使用exec sp_helpserver
2的任何鏈接的服務器。如果你的服務器沒有返回,那麼它不是Linked
,這意味着你需要添加它。 否則轉到步驟3.
對於的Sql Server 2008 R2的,去Server Object > Linked Servers > Add new Linked Server
或者
exec sp_addlinkedserver @server='ServerName';
連接到輔助服務器是這樣的...
exec sp_addlinkedsrvlogin
@rmtsrvname='ServerName'
, @useself=false
, @rmtuser='user'
, @rmtpassword='Password';
4.現在您可以加入兩個不同服務器的表。
SELECT
SRV1.*
FROM
DB1.database_name.dbo.table_name SRV1
INNER JOIN DB2.database_name.dbo.table_name SRV2
ON SRV1.columnId = SRV2.columnId
GO
相關問題
- 1. MySQL。連接來自不同服務器的表
- 2. DQL連接來自不同表格的兩個連接表格
- 3. 連接來自不同服務器的socket.io的錯誤
- 4. 連接到來自服務器的寧靜服務的錯誤
- 5. 連接到MySQL不同的服務器
- 6. PDO連接到SQLite服務器在不同的服務器
- 7. 共同MySQL表連接到不同的MySQL服務器
- 8. SQL服務器不同行上連接
- 9. 如何連接來自不同數據庫的兩個表格
- 10. 如何在Yii2上連接來自不同表格的2列
- 11. 如何連接來自三個不同表格的數據?
- 12. 如何連接來自不同表格的列
- 13. $ _SESSION來自不同服務器
- 14. 檢索來自不同服務器B
- 15. 連接來自2個不同服務器的2個數據庫
- 16. 連接來自不同服務器的多個FTP和SQL DB(共享資源)
- 17. 1 sonarqube服務器連接到2個不同jenkins服務器
- 18. TCP服務器不接受來自()
- 19. 保持來自自制Java服務器的持續連接
- 20. 執行一個查詢,連接來自同一個MySQL服務器的不同數據庫的兩個表
- 21. 不同服務器上的Linq或SQL連接表
- 22. 在不同的服務器上連接兩個表
- 23. 來自不同服務器的java.sql.Time生成的不同輸出
- 24. 是否可以比較來自不同SQL服務器的表?
- 25. SQL查詢:一個表來自不同服務器的
- 26. 使用PHP比較來自不同服務器的兩個表格
- 27. 如何檢查來自同一服務器或不同服務器的請求?
- 28. SQL服務器:連接的數據導致以表格格式
- 29. 服務器到服務器的連接
- 30. 連續同步來自網絡服務器的變化