跨數據庫完成數據交換。本站提示廣大學習愛好者:(跨數據庫完成數據交換)文章只能為提供參考,不一定能成為您想要的結果。以下是跨數據庫完成數據交換正文
平日情形下,我們的CRUD操作都在單一數據庫中停止。然則,也能夠會碰到須要停止跨數據交換的情形。對此,我以跨數據庫停止表的拜訪為例,略微總結了下。
1、同SQL SERVER
這個最簡略。直接在表名前加上"[數據庫名]."便可以了。
例:
SELECT * FROM [DestinationDBName].dbo.DestinationTableName
2、跨SQL SERVER
重要引見兩種辦法:
(一)經由過程鏈接辦事器
1.先履行體系存儲進程 sp_addlinkedserver :
EXEC sp_addlinkedserver @server='DestinationDBAlias',--目的數據庫的別號,在銜接並登錄後,便可以用它來拜訪數據 @srvproduct='', @provider='SQLOLEDB', @datasrc='DestinationServerIP\ServerName'--平日用"IP\端口名"構成,假如辦事器上只裝了一個MSSQL SERVER,或許裝了多個MS SQLSERVER,但要拜訪的是默許端口,就不消加端口名
2.再履行體系存儲進程 sp_addlinkedsrvlogin:
EXEC sp_addlinkedsrvlogin @rmtsrvname='DestinationDBAlias',--留意這裡的名字應與第一步sp_addlinkedserver中@server值分歧 @useself='false', @locallogin=NULL, @rmtuser='UserName', @rmtpassword='Password'
3.如今,我們可以經由過程目的數據庫別號拜訪數據:
例:
SELECT * FROM [DestinationDBAlias].dbo.DestinationTableName
4.應用停止,不要忘了斷開與目的數據庫的銜接:
EXEC sp_dropserver @server='DestinationDBAlias',--留意這裡的名字應與第一步sp_addlinkedserver中@server值分歧 @droplogins='droplogins'
(二)應用OPENDATASOURCE/OPENROWSET銜接長途辦事器
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
函數OPENQUERY也能完成跨辦事器拜訪數據,但它是基於曾經樹立鏈接辦事器的基本下去操作的,應屬第一種辦法,在此不再贅述。
以上就是跨數據庫完成數據交換的辦法,願望年夜家可以親身著手操作一下。