解析MSSQL跨數據庫查詢的完成辦法。本站提示廣大學習愛好者:(解析MSSQL跨數據庫查詢的完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是解析MSSQL跨數據庫查詢的完成辦法正文
--創立鏈接辦事器
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):
(勝利)或 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.表名