--創建鏈接服務器
exec sp_addlinkedserver '鏈接服務器名稱','','SQLOLEDB','遠程服務器名或ip地址'exec sp_addlinkedsrvlogin '鏈接服務器名稱','false',null,'需要鏈接服務器用戶名','密碼'
sp_addlinkedserver
[ @server= ] 'server'
[ , [ @srvproduct= ] 'product_name' ] [ , [ @provider= ] 'provider_name' ] [ , [ @datasrc= ] 'data_source' ] [ , [ @location= ] 'location' ] [ , [ @provstr= ] 'provider_string' ] [ , [ @catalog= ] 'catalog' ]
參數(Parameters):
[ @server = ] 'server'
要創建的鏈接服務器的名稱。server 的數據類型爲 sysname,沒有默認值。
[ @srvproduct = ] 'product_name' 要添加爲鏈接服務器的 OLE DB 數據源的產品名稱。product_name 的數據類型爲 nvarchar(128),默認值爲 NULL。如果爲 SQL Server,則不必指定 provider_name、data_source、location、provider_string 和 catalog。
[ @provider = ] 'provider_name' 與此數據源對應的 OLE DB 訪問接口的唯一編程標識符 (PROGID)。對於當前計算機中安裝的指定 OLE DB 訪問接口,provider_name 必須唯一。provider_name 的數據類型爲 nvarchar(128),默認值爲 NULL;但如果忽略 provider_name,則使用 SQLNCLI。SQLNCLI 是 SQL 本機 OLE DB 訪問接口。OLE DB 訪問接口應以指定的 PROGID 在註冊表中註冊。
[ @datasrc = ] 'data_source' 由 OLE DB 訪問接口解釋的數據源的名稱。data_source 的數據類型爲 nvarchar(4000)。data_source 作爲 DBPROP_INIT_DATASOURCE 屬性傳遞以初始化 OLE DB 訪問接口。
[ @location = ] 'location' 由 OLE DB 訪問接口解釋的數據庫的位置。location 的數據類型爲 nvarchar(4000),默認值爲 NULL。location 作爲 DBPROP_INIT_LOCATION 屬性傳遞以初始化 OLE DB 訪問接口。
[ @provstr = ] 'provider_string' OLE DB 訪問接口特定的連接字符串,它可標識唯一的數據源。provider_string 的數據類型爲 nvarchar(4000),默認值爲 NULL。provstr 或傳遞給 IDataInitialize 或設置爲 DBPROP_INIT_PROVIDERSTRING 屬性以初始化 OLE DB 訪問接口。
在針對 SQL 本機客戶端 OLE DB 訪問接口創建鏈接服務器後,可將 SERVER 關鍵字用作 SERVER=servername/instancename 來指定實例,以指定特定的 SQL Server 實例。servername 是運行 SQL Server 的計算機名稱,instancename 是用戶將連接到的特定 SQL Server 實例的名稱。
[ @catalog = ] 'catalog' 與 OLE DB 訪問接口建立連接時所使用的目錄。catalog 的數據類型爲 sysname,默認值爲 NULL。catalog 作爲 DBPROP_INIT_CATALOG 屬性傳遞以初始化 OLE DB 訪問接口。在針對 SQL Server 實例定義鏈接服務器時,目錄指向鏈接服務器映射到的默認數據庫。
返回代碼值(returnValue):
0(成功)或 1(失敗)
權限:
要求具有 ALTER ANY LINKED SERVER 權限。
sp_addlinkedsrvlogin
[ @rmtsrvname = ] 'rmtsrvname' [ , [ @useself = ] 'useself' ] [ , [ @locallogin = ] 'locallogin' ] [ , [ @rmtuser = ] 'rmtuser' ] [ , [ @rmtpassword = ] 'rmtpassword' ]
注意:不能從用戶定義的事務中執行 sp_addlinkedsrvlogin。
參數(Parameters):
- [ @rmtsrvname = ] 'rmtsrvname'
應用登錄映射的鏈接服務器的名稱。rmtsrvname 的數據類型爲 sysname,沒有默認值。
[ @useself = ] 'useself'
確定用於連接遠程服務器的登錄名。useself 的數據類型爲 varchar(8),默認值爲 TRUE。
值爲 true 時指定登錄使用自己的憑據連接 rmtsrvname,忽略 rmtuser 和 rmtpassword 參數。
false 指定使用 rmtuser 和 rmtpassword 參數連接指定 locallogin 的 rmtsrvname。
如果 rmtuser 和 rmtpassword 也設置爲 NULL,則不使用登錄名或密碼來連接鏈接服務器。
- [ @locallogin = ] 'locallogin'
本地服務器上的登錄。locallogin 的數據類型爲 sysname,默認值爲 NULL。
NULL 指定此項應用於連接到 rmtsrvname 的所有本地登錄。
如果不爲 NULL,則 locallogin 可以是 SQL Server 登錄或 Windows 登錄。
對於 Windows 登錄來說,必須以直接的方式或通過已被授權訪問的 Windows 組成員身份授予其訪問 SQL Server 的權限。
- [ @rmtuser = ] 'rmtuser'
當 useself 爲 false 時,表示用於連接 rmtsrvname 的用戶名。
rmtuser 的數據類型爲 sysname,默認值爲 NULL。
- [ @rmtpassword = ] 'rmtpassword'
與 rmtuser 關聯的密碼。rmtpassword 的數據類型爲 sysname,默認值爲 NULL。
返回代碼值(returnValue):
0(成功)或 1(失敗)
權限:
需要對服務器具有 ALTER ANY LOGIN 權限。
--查詢示例
select * from 鏈接服務器名.數據庫名.dbo.表名