《Mysql應用解析MSSQL跨數據庫查詢的實現方法》要點:
本文介紹了Mysql應用解析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.表名
歡迎參與《Mysql應用解析MSSQL跨數據庫查詢的實現方法》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/12656.html