程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> 跨數據庫完成數據交換

跨數據庫完成數據交換

編輯:MSSQL

跨數據庫完成數據交換。本站提示廣大學習愛好者:(跨數據庫完成數據交換)文章只能為提供參考,不一定能成為您想要的結果。以下是跨數據庫完成數據交換正文


平日情形下,我們的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也能完成跨辦事器拜訪數據,但它是基於曾經樹立鏈接辦事器的基本下去操作的,應屬第一種辦法,在此不再贅述。

以上就是跨數據庫完成數據交換的辦法,願望年夜家可以親身著手操作一下。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved