SQLServer中創建鏈接服務器的五個存儲過程


 

朋友們,您是否碰到過這樣的需求:您有多台數據庫服務器,希望把這些分布在不同服務器上的數據庫都連通起來實現數據共享?

詳解SQLServer中創建鏈接服務器的五個存儲過程

 

您別擔心,我今天談的不是什么像Spark這等高深的技術,是小手段小技巧,幫您解決大問題來着。今天要談的就是SQLServer的鏈接服務器。

如何創建和釋放鏈接服務器?

通過SQLServer的鏈接服務器,可以把遍布在其它站點的SQLServer、Oracle等數據庫全部連通起來,您可以查詢、更改不同機器上的數據庫數據。

鏈接服務器的創建和釋放主要用到SQLServer的五個系統存儲過程。今天我們着重了解下這五個存儲過程的語法結構,具體的應用,我會在后續文章中詳細說明。萬事開頭難,如果您基本掌握了這五個系統存儲過程的語法結構,以后應用起來就更清晰明了了。

詳解SQLServer中創建鏈接服務器的五個存儲過程

 

這五個系統存儲過程分別是:

  1. sp_addlinkedserver:創建鏈接服務器。
  2. sp_addlinkedsrvlogin:創建或更新 SQL Server 本地實例上的登錄名與遠程服務器中安全帳戶之間的映射。
  3. sp_serveroption:為遠程服務器和鏈接服務器設置服務器選項。
  4. sp_droplinkedsrvlogin:刪除運行 SQL Server 的本地服務器上的登錄與鏈接服務器上的登錄之間的現有映射。
  5. sp_dropserver:從本地 SQL Server 實例中的已知遠程服務器和鏈接服務器的列表中刪除服務器。

現在我們就把這五個系統存儲過程的語法結構認真梳理一下:

1、sp_addlinkedserver

sp_addlinkedserver 
[ @server= ] 'server'
[ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
詳解SQLServer中創建鏈接服務器的五個存儲過程

 

其中:

  1. server:鏈接服務器的本地名稱。也允許使用實例名稱,例如MYSERVERSQL1。
  2. product_name:OLE DB數據源的產品名。對於SQL Server實例來說,product_name是'SQL Server',
  3. providerr_name:這是OLE DB訪問接口的唯一可編程標識。當沒有指定它時,訪問接口名稱是 SQL Server數據源。SQL Server顯式的provider_name是 SQLNCLI(Microsoft SQL Native Client OLE DB Provider)。Oracler的是 MSDAORA,Oracle 8或更高版本的是OraOLEDB.Oracle。MS Access和MS Excel的是 Microsoft.Jet.OLEDB.4.0。IBM DB2的是DB2OLEDB,以及ODBC數據源的是MSDASQL
  4. data_source:這是特定OLE DB訪問接口解釋的數據源。對於SQL Server,這是 SQL Server(servername或servernameinstancename)的網絡名稱。對於Oracle,這是SQL*Net別名。對於 MS Access和MSExcel,這是文件的完整路徑和名稱。對於ODBC數據源,這是系統DSN名稱,
  5. location:由特定OLE DB訪問接口解釋的位置
  6. provider_string:OLE DB 訪問接口特定的連接字符串。
  7. catalog:catalog的定義變化基於OLE DB訪問接口的實現。對於SQL Server,這是可選的數據庫名稱,對於DB2,這個目錄是數據庫的名稱

2、sp_addlinkedsrvlogin

sp_addlinkedsrvlogin 
[ @rmtsrvname = ] 'rmtsrvname'
[ , [ @useself = ] { 'TRUE' | 'FALSE' | NULL } ]
[ , [ @locallogin = ] 'locallogin' ]
[ , [ @rmtuser = ] 'rmtuser' ]
[ , [ @rmtpassword = ] 'rmtpassword' ]
詳解SQLServer中創建鏈接服務器的五個存儲過程

 

其中:

  1. rmtsrvname:要添加登錄名映射的本地鏈接服務器
  2. useself:當使用true值時,使用本地SQL或Windows登錄名連接到遠程服務器名。如果設為false,存儲過程 sp_addlinkedsrvlogin的locallogin、rmtuser和rmtpassword參數將應用到新的映射中
  3. locallogin:這是映射到遠程登錄名的SQL Server登錄或Windows用戶的名稱。如果這個參數置為NULL,映射將應用SQL Server實例中的所有本地登錄名
  4. rmtuser:用來連接到鏈接服務器的用戶/登錄名的名稱
  5. rmtpassword:用來連接到鏈接服務器的用戶/登錄名的密碼

3、sp_serveroption

sp_serveroption 
[@server = ] 'server'
,[@optname = ] 'option_name'
,[@optvalue = ] 'option_value' ;
詳解SQLServer中創建鏈接服務器的五個存儲過程

 

其中:

  1. server:配置屬性的鏈接服務器的名稱
  2. option_name:要配置的選項
  3. option_value:選項的新值

4、sp_droplinkedsrvlogin

sp_droplinkedsrvlogin 
[ @rmtsrvname= ] 'rmtsrvname' ,
[ @locallogin= ] 'locallogin'
詳解SQLServer中創建鏈接服務器的五個存儲過程

 

其中:

  1. rmtsrvname:登錄名映射的鏈接服務器名稱
  2. locallogin:這是從鏈接服務器刪除的SQL Server登錄或Windows用戶映射的名稱

5、sp_dropserver

sp_dropserver 
[ @server = ] 'server'
[ , [ @droplogins = ] { 'droplogins' | NULL} ]
詳解SQLServer中創建鏈接服務器的五個存儲過程

 

其中:

  1. server:從SQL Server實例中刪除的鏈接服務器的名稱
  2. droplogins:如果指定droplogins,則在刪除鏈接服務器之前要刪除登錄名映射

原文地址:https://www.toutiao.com/i6692099942023954947/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM