跨數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)交流
通常情況下,我們的CRUD操作都在單一數(shù)據(jù)庫中進(jìn)行。但是,也可能會(huì)遇到需要進(jìn)行跨數(shù)據(jù)交流的情況。對此,我以跨數(shù)據(jù)庫進(jìn)行表的訪問為例,稍微總結(jié)了下。
一、同SQL SERVER
這個(gè)最簡單。直接在表名前加上"[數(shù)據(jù)庫名]."就可以了。
例:
SELECT * FROM [DestinationDBName].dbo.DestinationTableName
二、跨SQL SERVER
主要介紹兩種方法:
(一)通過鏈接服務(wù)器
1.先執(zhí)行系統(tǒng)存儲(chǔ)過程 sp_addlinkedserver :
EXEC sp_addlinkedserver @server='DestinationDBAlias',--目標(biāo)數(shù)據(jù)庫的別名,在連接并登錄后,就可以用它來訪問數(shù)據(jù) @srvproduct='', @provider='SQLOLEDB', @datasrc='DestinationServerIP\ServerName'--通常用"IP\端口名"組成,如果服務(wù)器上只裝了一個(gè)MSSQL SERVER,或者裝了多個(gè)MS SQLSERVER,但要訪問的是默認(rèn)端口,就不用加端口名
2.再執(zhí)行系統(tǒng)存儲(chǔ)過程 sp_addlinkedsrvlogin:
EXEC sp_addlinkedsrvlogin @rmtsrvname='DestinationDBAlias',--注意這里的名字應(yīng)與第一步sp_addlinkedserver中@server值一致 @useself='false', @locallogin=NULL, @rmtuser='UserName', @rmtpassword='Password'
3.現(xiàn)在,我們可以通過目標(biāo)數(shù)據(jù)庫別名訪問數(shù)據(jù):
例:
SELECT * FROM [DestinationDBAlias].dbo.DestinationTableName
4.使用結(jié)束,不要忘了斷開與目標(biāo)數(shù)據(jù)庫的連接:
EXEC sp_dropserver @server='DestinationDBAlias',--注意這里的名字應(yīng)與第一步sp_addlinkedserver中@server值一致 @droplogins='droplogins'
(二)使用OPENDATASOURCE/OPENROWSET連接遠(yuǎn)程服務(wù)器
SELECT * FROM OPENDATASOURCE
('SQLOLEDB', --provider_name
'Data Source=DestinationServerIP;User ID=UserName;Password=Password' --provider_string(datasource;user_id;password)
).[DestinationDBAlias].dbo.DestinationTableName
SELECT * FROM OPENROWSET
('SQLOLEDB',--provider_name
'DestinationServerIP';'UserName';'Password',--provider_string(datasource;user_id;password)
'SELECT * FROM [DestinationDBAlias].dbo.DestinationTableName')--query_string
函數(shù)OPENQUERY也能實(shí)現(xiàn)跨服務(wù)器訪問數(shù)據(jù),但它是基于已經(jīng)建立鏈接服務(wù)器的基礎(chǔ)上來操作的,應(yīng)屬第一種方法,在此不再贅述。
以上就是跨數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)交流的方法,希望大家可以親自動(dòng)手操作一下。
相關(guān)文章
利用sql函數(shù)生成不重復(fù)的訂單號(hào)的代碼
利用sql函數(shù)生成不重復(fù)的訂單號(hào)的代碼,需要的朋友可以參考下。2011-12-12
SQL SERVER修改函數(shù)名容易引發(fā)的問題分析
這篇文章主要介紹了SQL SERVER修改函數(shù)名容易引發(fā)的問題分析的相關(guān)資料,需要的朋友可以參考下2016-02-02
SQL中g(shù)roupBy和eq的同時(shí)使用問題
groupBy和eq同時(shí)使用可能會(huì)導(dǎo)致錯(cuò)誤,本文就來介紹一下SQL中g(shù)roupBy和eq的同時(shí)使用問題,感興趣的可以了解一下2024-05-05
SQL Server中聚合歷史備份信息對比數(shù)據(jù)庫增長的方法
這篇文章主要介紹了SQL Server中聚合歷史備份信息對比數(shù)據(jù)庫增長的方法,需要的朋友可以參考下2014-09-09
Sqlserver事務(wù)備份和還原的實(shí)例代碼(必看)
下面小編就為大家?guī)硪黄猄qlserver事務(wù)備份和還原的實(shí)例代碼(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05

