在多台SQL Server伺服器間執行SQL命令

來源:互聯網
上載者:User
  在項目開發中遇到這樣一個問題:需要從另一個系統中匯入資料到新開發的系統中,兩個系統的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,但由於我水平所限,沒能試通,最後只好採用了上限辦法來實現,如果有誰知道怎麼能夠實現,請一定告訴我一下,我在這先謝過了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.