設定連結伺服器,讓 SQL Server 資料庫引擎能對非 SQL Server 實例的 OLE DB 資料來源執行命令。 通常鏈接的伺服器會設定為讓 Database Engine 執行 Transact-SQL 語句,其中包含另一個 SQL Server 實例中的數據表,或 Oracle 等其他資料庫產品。 許多類型 OLE DB 數據源都可以設定為連結的伺服器,包括 Microsoft Access 和 Excel。 連結的伺服器提供下列優點:
從 SQL Server 外部存取數據的能力。
在企業內對異質數據源執行分散式查詢、更新、指令和交易的能力。
具備統一處理各種數據來源的能力。
您可以使用 SQL Server Management Studio 或使用 sp_addlinkedserver (Transact-SQL) 語句來設定連結的伺服器。 OLE DB 提供者在所需的參數類型和數目上有很大的差異。 例如,某些提供者要求您使用 sp_addlinkedsrvlogin (Transact-SQL) 提供連線的安全性內容。 某些 OLE DB 提供者允許 SQL Server 更新 OLE DB 來源上的數據。 其他則僅提供唯讀數據存取。 如需每個 OLE DB 提供者的相關信息,請參閱該 OLE DB 提供者的檔。
連結的伺服器元件
連結的伺服器定義會指定下列物件:
OLE DB 提供者
OLE DB 數據源
OLE DB 提供者是一個 DLL,可管理和與特定數據源互動。 OLE DB 資料源會識別可透過 OLE DB 存取的特定資料庫。 雖然透過連結伺服器定義查詢的數據源通常是資料庫,但 OLE DB 提供者存在各種檔案和檔格式。 其中包括文本文件、電子表格數據,以及全文檢索內容搜尋的結果。
MICROSOFT SQL Server Native Client OLE DB Provider (PROGID: SQLNCLI11) 是 SQL Server 的官方 OLE DB 提供者。
備註
SQL Server 分散式查詢的設計目的是要與任何實作必要 OLE DB 介面的 OLE DB 提供者搭配使用。 不過,SQL Server 僅針對 SQL Server Native Client OLE DB 提供者和其他某些提供者進行測試。
連結的伺服器詳細數據
下圖顯示連結伺服器組態的基本概念。
一般而言,鏈接的伺服器是用來處理分散式查詢。 當用戶端應用程式透過連結的伺服器執行分散式查詢時,SQL Server 會剖析命令,並將要求傳送至 OLE DB。 數據列集要求的格式可能是針對提供者執行查詢,或從提供者開啟基表。
若要讓數據源透過連結伺服器傳回數據,該數據源的 OLE DB 提供者 (DLL) 必須存在於與 SQL Server 實例相同的伺服器上。
使用第三方 OLE DB 提供者時,執行 SQL Server 服務的帳戶必須具有目錄的讀取和執行許可權,以及安裝提供者的所有子目錄。
管理提供者
有一組選項可控制 SQL Server 載入和使用登錄中指定的 OLE DB 提供者的方式。
管理連結伺服器設定
當您設定連結的伺服器時,請使用 SQL Server 註冊連接資訊和資料來源資訊。 註冊之後,可以使用單一邏輯名稱來參考該數據源。
您可以使用預存程式與目錄檢視來管理連結的伺服器定義:
執行 sp_addlinkedserver 來建立連結的伺服器定義。
針對 sys.servers 系統目錄檢視執行查詢,以檢視 SQL Server 特定實例中定義之連結伺服器的相關信息。
執行 sp_dropserver 來刪除連結的伺服器定義。 您也可以使用此預存程式來移除遠端伺服器。
您也可以使用 SQL Server Management Studio 來定義連結的伺服器。 在 [物件總管] 中,以滑鼠右鍵按兩下 [伺服器物件],選取 [ 新增],然後選取 [鏈接的伺服器]。 您可以以滑鼠右鍵按下連結的伺服器名稱,然後選取 [ 刪除],以刪除連結的伺服器定義。
當您對連結伺服器執行分散式查詢時,請使用完整的四部分資料表名稱對每個數據源進行查詢。 此四部分名稱的格式應為 linked_server_name.catalog.schema。object_name。
備註
鏈接的伺服器可以定義為指向其所定義之伺服器的返回(回送)。 測試在單一伺服器網路上使用分散式查詢的應用程式時,回送伺服器最有用。 回送連結的伺服器適用於測試,且不支援許多作業,例如分散式交易。
相關工作
建立連接伺服器(SQL Server Database Engine)
sp_addlinkedserver (Transact-SQL)
sp_addlinkedsrvlogin (Transact-SQL)