起因:使用者多,資料量大;多個資料庫,每個資料庫佔用一台資料庫伺服器。 連結的伺服器用於處理分散式查詢:當用戶端應用程式通過連結的伺服器執行分散式查詢時,SQL Server 將分析命令並向 OLE DB 發送請求。
sp_addlinkedserver:在本機伺服器上註冊遠程伺服器的資訊。
sp_addlinkedsrvlogin:建立或更新 SQL Server 本地執行個體上的登入名稱與遠程伺服器中安全帳戶之間的映射sp_addlinkedserver [ @server= ] 'server' //要建立的串連伺服器的名稱[ , [ @srvproduct= ] 'product_name' ] //連結的伺服器的OLEDB 資料來源的產品名稱,預設值為NULL,如果為SQL Server,則不必指定。[ , [ @provider= ]'provider_name' ] //與此資料來源對應的 OLE DB 提供者的唯一程式設計識別碼
[ , [ @datasrc= ] 'data_source' ] //由 OLEDB 提供者解釋的資料來源的名稱
sp_addlinkedsrvlogin
[ @rmtsrvname = ] 'rmtsrvname' //應用登入映射的連結的伺服器的名稱
[ , [ @useself = ] 'TRUE' | 'FALSE' | NULL ] // 確定是否通過類比本地登入名稱或顯式提交登入名稱和密碼來串連到 rmtsrvname,預設值為 True
值為 True 指定登入名稱使用自己的憑據串連到 rmtsrvname,而忽略 rmtuser 和 rmtpassword 參數;
值False 指定 rmtuser 和 rmtpassword 參數用於串連到指定 locallogin 的 rmtsrvname;如果 rmtuser 和 rmtpassword 也設定為 NULL,則不使用登入名稱或密碼來串連連結的伺服器
[ , [ @locallogin = ] 'locallogin' ] //本機伺服器上的登入 ,預設值為null 。null 指定此項應用於串連到 rmtsrvname 的所有本地登入。如果不為 null ,則 locallogin 可以是 SQL Server 登入或 Windows 登入
[ , [ @rmtuser = ] 'rmtuser' ] //當 @useself 為 FALSE 時,用於串連到 rmtsrvname 的遠程登入名稱 ,預設值為 NULL
[ , [ @rmtpassword = ] 'rmtpassword' ] //與 rmtuser 關聯的密碼 ,預設值為 NULL
執行個體示範:
exec sp_addlinkedserver 'pub', ' ', 'SQLOLEDB', '192.168.1.38'exec sp_addlinkedsrvlogin 'pub','false',null, 'sa', '203'SELECT * FROM pub.ce_pub.dbo.t_pub_user