在項目開發中遇到這樣一個問題:需要從另一個系統中匯入資料到新開發的系統中,兩個系統的SQL Server服務分別位於不同的SQL Server伺服器上。
我試著在新系統中寫一個預存程序來實現這一功能,寫了如下的的T-SQL命令來測試這個思路是否可行(在新系統的SQL Server伺服器上的企業管理器中已經建立好了對另一個系統SQL Server伺服器[test]的串連):
1Select * From [Test].[MyData].dbo.[User]
2--其中:
3--[Test]為另一系統的資料庫伺服器名
4--[MyData]為在那台伺服器上的資料庫名
5--[User]為表名
執行後,系統報“在sysservers 中找不到伺服器 'Test'。請執行sp_addlinkedserver 將該伺服器添加到sysservers。”的錯誤,這樣看來在多台SQL Server伺服器上執行SQL命令是可行的,不過需要在執行SQL命令的SQL Server器上進行設定,於是趕緊查看關於sp_addlinkedserver 系統預存程序的資料,經過反覆測試,在新系統的SQL Server伺服器上運行以下SQL命令後,我終於可以在新系統的SQL Server上正常操作[Test]伺服器上的資料了。
1EXEC sp_addlinkedserver
2 @server = 'Test',
3 @provider = 'MSDASQL',
4 @provstr = 'DRIVER={SQL Server};SERVER=Test;UID=sa;PWD=;'
5--@server是以後執行SQL命令時引用的伺服器名,它可以任意命名,不一定需要與真實SQL Server伺服器同名。
6--@provider請按資料表格中提供的參數給定。
7--@provstr資料庫連接字,不用我多說了。
注意:根據資料說明,對於SQL Server應該可以採用“SQLOLEDB”作為@provider,但由於我水平所限,沒能試通,最後只好採用了上限辦法來實現,如果有誰知道怎麼能夠實現,請一定告訴我一下,我在這先謝過了。