程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 解析MSSQL跨數據庫查詢的實現方法

解析MSSQL跨數據庫查詢的實現方法

編輯:關於MYSQL數據庫
復制代碼 代碼如下:
--創建鏈接服務器  
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.表名
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved