在企業級資料庫架構中,跨伺服器存取資料是常見需求。SQL Server 提供「連結伺服器」機制,讓您能在單一查詢中操作不同實例甚至異構資料來源的資料。本文將系統性介紹建立、查詢、移除連結伺服器的核心預存程序,並提供實戰範例。
SQL Server 內建三個關鍵預存程序管理連結伺服器生命週期:
以下範例示範如何使用 ODBC 驅動程式連結到 IP 為 192.168.1.100 的遠端 SQL Server 實例:
-- 建立連結伺服器
EXEC sp_addlinkedserver
'instance1', -- 連結伺服器別名
'', -- 產品名稱(留空預設為 SQL Server)
'MSDASQL', -- OLE DB 提供者
NULL, -- 資料來源
NULL, -- 位置
'DRIVER={SQL Server};SERVER=192.168.1.100;UID=sa;PWD=123;'; -- 連接字串
GO
-- 查詢已建立的連結伺服器
EXEC sp_linkedservers;
GO
-- 移除連結伺服器
EXEC sp_dropserver 'instance1';
GO
-- 跨伺服器查詢測試
SELECT * FROM instance1.db1.dbo.table1;
-- 語法:連結伺服器別名.資料庫名.dbo.資料表名
[連結伺服器].[資料庫].[結構].[資料表] 進行跨伺服器 JOIN、INSERT、UPDATE、DELETE 操作@provider 與 @provstr 參數sp_addlinkedsrvlogin)而非硬編碼帳密若遇到「找不到伺服器」錯誤,請檢查:
sp_addlinkedserver 使用 IP)