告诉你SQLServer如何读取第三方数据库的数据-成都快上网建站

告诉你SQLServer如何读取第三方数据库的数据

现在需要在一台服务器(A)上的数据库(Master)里访问另外一台服务器(B)的另外两个数据库(NZ 和 AU)。AU 和 NZ 是网站的部分实时数据,目前某一步操作的REPLICATION方案是从服务器B到A,AU / NZ 的表结构同Master 数据结构基本一致。

这样一来,当把AU Replication 到 Master 后,在把 NZ Replication 到 Master , Master 里的就只剩 NZ 的数据了。反过来就只有AU的了,具体的Replication 是怎么一回事,我也不懂,也没有细看。

如果能在Master 里直接操作 AU 和 NZ 就好了。

创新互联建站是一家集网站建设,永丰企业网站建设,永丰品牌网站建设,网站定制,永丰网站建设报价,网络营销,网络优化,永丰网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

SQLServer 有函数:
OPENROWSET 和 OPENDATASOURCE

这两个函数不但能实现从另外的数据库读数据,而且还能从EXCEL、TXT, ORACLE, ODBC 等读数据。

--启用Ad Hoc Distributed Queries:
exec sp_configure \'show advanced options\',1
reconfigure
exec sp_configure \'Ad Hoc Distributed Queries\',1
reconfigure

SELECT *
FROM OPENDATASOURCE(
\'SQLOLEDB\',
\'Data Source=SQLServerName;User ID=sa;Password=xxx\'
).Help.dbo.Help_Category



select * from openrowset( \'SQLOLEDB \', \'SQLServerName\'; \'sa\'; \'xxx\', Help.dbo.Help_Category )

--关闭Ad Hoc Distributed Queries:
exec sp_configure \'Ad Hoc Distributed Queries\',0
reconfigure
exec sp_configure \'show advanced options\',0
reconfigure

但是,这样写着有点复杂,而且不便于维护,假如数据库密码改变了,就需要把一个一个把密码改正。

Oracle 里有 DB Link, 而且语法非常简洁。

查了一下帮助,SQLServer 里有 链接服务器 这个东东。要创建 链接服务器需要用到SQLServer 的一个系统存储过程:

sp_addlinkedserver [ @server= ] \'server\' [ , [ @srvproduct= ] \'product_name\' ]
[ , [ @provider= ] \'provider_name\' ]
[ , [ @datasrc= ] \'data_source\' ]
[ , [ @location= ] \'location\' ]
[ , [ @provstr= ] \'provider_string\' ]
[ , [ @catalog= ] \'catalog\' ]

exec sp_addlinkedserver @server= \'XLING\' , @srvproduct = \'\', @provider = \'SQLNCLI\' , @datasrc = \'SQLServerName2\'
执行后,可以在 Sqlserver Management Studio 的对象资源管理器里的 服务器对象 -》 链接服务器 里看到看这个 XLING
然后就可以用:
SELECT * FROM XLING.PricemeHelp.dbo.Help_Category

这里的XLING就是指向数据库SQLServerName2的链接服务器,从上面的SELECT可以看出,写的依然复杂。


标题名称:告诉你SQLServer如何读取第三方数据库的数据
转载注明:http://kswjz.com/article/cjgcod.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流