2009-02-13 143 views
7

是否有連接到另一臺服務器的TSQL命令?TSQL命令連接到另一臺服務器(SQL Server 2005)

或者當您在查詢窗口中時,連接到另一臺服務器並顯示查詢窗口的鍵盤快捷鍵是什麼?

我已經看到Ctrl + N彈出在某些屏幕上連接到服務器對話框,但是當我在查詢窗口中時已經按Ctrl + N它只是打開另一個查詢窗口。

使用USE命令可以連接到當前服務器上的其他數據庫,但有沒有可以連接到另一臺服務器的命令?

我使用SQL Server 2005的

+0

您是否正在更改當前查詢窗口正在執行的服務器,或讓當前查詢從另一臺服務器獲取數據,但保持與當前連接的數據保持連接? – SqlRyan 2009-06-08 19:15:03

回答

5

可以使用OpenDataSource與鏈接服務器

OpenDataSource(provider_name, init_string) 

例如

SELECT 
FirstName, 
Gender 
FROM 
OpenDataSource (
'SQLOLEDB', 
'DataSource = NOLI\SQL2;UserID=myUserID;Password=myPassword' 
).Organisation.dbo.Employees 

MSDN -

像OPENROWSET功能, OPENDATASOURCE應該只引用 OLE DB數據來源說a很少訪問 。對於訪問更多 的任何數據源,定義鏈接服務器 多次。 OPENDATASOURCE或OPENROWSET都不提供 所有鏈接服務器的功能定義,例如安全性 管理和查詢 目錄信息的能力。所有連接 信息(包括密碼)必須在每次調用OPENDATASOURCE時提供 。

1

你必須創建一個Linked ServerOPENQUERY使用或使用OPENROWSET的選擇。

如果您在談論,將連接更改爲查詢窗口,只需在查詢窗口中右鍵單擊並選擇更改連接。

1

一旦你建立鏈接的服務器可以通過完全限定每個表/視圖

SELECT * FROM [服務器]對其運行TSQL。[數據庫]。(業主)。表

通過這種方式,您可以從任何查詢窗口與任何服務器通信 - 如果這是您需要的。在大多數Sql中,您只能提供表格,因爲其他所有內容都是默認的。使用這種技術,您甚至可以在服務器之間編寫連接子句,與分佈式事務協調器(MSDTC)一樣低。當然,你只會這樣做,以證明它是有效的,因爲它的運行速度非常慢。

6

或者通過菜單...

查詢>連接>更改連接

或通過鼠標...

(右鍵單擊鼠標按鈕)>連接>更改連接

雙方將彈出連接到數據庫引擎對話框

如果你想要寫的服務器之間的一些TSQL那麼你」你需要創建一個鏈接服務器,然後在SQL中使用OPENQUERY或OPENROWSET。在以前的文章中有一些關於如何做到這一點的好的指針。

4

另一個可行的選項取決於您想要執行的操作是SQLCMD模式還是註冊服務器。

可以在SSMS的查詢菜單下啓用SQLCMD模式。該功能開啓後,你可以做這樣的事情吧:

:CONNECT SERVER1 
SELECT @@SERVERNAME; 
GO 

:CONNECT SERVER2 
SELECT @@SERVERNAME; 
GO 

,註冊服務器(應該是在視圖菜單下),你可以一次性設置多組服務器,並執行對組查詢。

雙方可以在許多DBA情況下非常有用,但我不知道這是你以後。

+0

編輯添加語句終止符和批處理執行命令,否則我的前面的示例中的兩個命令都針對第二個服務器執行。 – 2013-01-21 20:16:39

相關問題