2016-07-22 86 views
0

我在兩臺不同的服務器計算機上有兩臺SQL Server數據庫服務器。SQL Server在線查詢

  • 服務器A - 192.168.1.100
  • 服務器B - 192.168.2.102

我需要從服務器A執行一個查詢到服務器B.從表中檢索數據

如何編寫SQL select語句來執行此操作?

是否有任何服務器配置允許這些類型的查詢?

+3

一種方法是定義鏈接服務器,並使用4部分組成的名稱'linked_server.db_name.schema_name.table_name' – lad2025

+0

請不要全部大寫輸入您的問題標題。這裏被認爲是SHOUTING,並且沒有必要這麼做。我們都可以閱讀得很好,發表你的問題不會讓你更快得到答案。對你要求幫助的人來說,SHOUT也是相當粗魯的。 :-) –

+0

使用MSSMS連接到您的SQL Server。展開服務器實例。展開服務器對象,然後展開鏈接服務器。您可以鏈接到您的其他服務器,並像lad2025提到的那樣,使用4部分名稱在查詢中引用服務器。 –

回答

1

這裏添加一個鏈接的服務器是一種執行此操作的命令。用適當的SQL憑據替換用戶和密碼值。

EXECUTE master.dbo.sp_addlinkedserver @server = N'192.168.2.102', @srvproduct=N'SQL Server' 
EXECUTE master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'192.168.2.102',@useself=N'False',@rmtuser='ASQLLogin',@rmtpassword='Password' 

然後簡單地詢問像你這樣一個正常的表,但在追加前面的鏈接服務器上面linked_server.db_name.schema_name.table_name的評論,像這樣:

SELECT * 
FROM 
    [192.168.2.102].[DatabaseName].[SchemaName].[TableName] 

你甚至可以將其加入您的本地服務器A如果你想。

SELECT * 
FROM 
    [192.168.2.102].[DatabaseName].[SchemaName].[TableName] b 
    INNER JOIN SomeTableOnServerA a 
    ON b.ID = a.ID