SQLServer跨库查询--分布式查询

Posted John_杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLServer跨库查询--分布式查询相关的知识,希望对你有一定的参考价值。

出处:http://www.cnblogs.com/doosmile/archive/2012/03/16/2400646.html

--用openrowset连接远程SQL或插入数据

--如果只是临时访问,可以直接用openrowset

--查询示例

select * from openrowset(\'SQLOLEDB\'

,\'sql服务器名\';\'用户名\';\'密码\'

,数据库名.dbo.表名)

在跨库查询时需要启用Ad Hoc Distributed Queries
启用Ad Hoc Distributed Queries:
exec sp_configure \'show advanced options\',1
reconfigure
exec sp_configure \'Ad Hoc Distributed Queries\',1
reconfigure
使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure \'Ad Hoc Distributed Queries\',0
reconfigure
exec sp_configure \'show advanced options\',0
reconfigure


--导入示例

select * into 表 from openrowset(\'SQLOLEDB\'

,\'sql服务器名\';\'用户名\';\'密码\'

,数据库名.dbo.表名)


--创建链接服务器

exec sp_addlinkedserver  \'srv_lnk\',\'\',\'SQLOLEDB\',\'远程服务器名或ip地址\'

exec sp_addlinkedsrvlogin \'srv_lnk\',\'false\',null,\'用户名\',\'密码\'

go

--创建链接服务器(包含镜像)

Exec sp_addlinkedserver

@server = \'14db\',

@srvproduct = N\'\',

@provider = N\'SQLOLEDB\',

@provstr= = N\'Server=10.2.16.11\\COMPUTECLUSTER;FailoverPartner=10.2.16.12\\COMPUTECLUSTER ;\',

@catalog=N’SimCloud’

exec sp_addlinkedsrvlogin \'14db\',\'false\',null,\'sa\',\'123456\'



--查询示例

select * from srv_lnk.数据库名.dbo.表名


--导入示例

select * into 表 from srv_lnk.数据库名.dbo.表名


--以后不再使用时删除链接服务器

exec sp_dropserver \'srv_lnk\',\'droplogins\'

go

--下面的示例访问来自某个表的数据,该表在 SQL Server 的另一个实例中。

SELECT *FROM OPENDATASOURCE(\'SQLOLEDB\',\'Data Source=ServerName;User ID=MyUID;Password=MyPass\').Northwind.dbo.Categories

--下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。

SELECT *FROM OpenDataSource( \'Microsoft.Jet.OLEDB.4.0\',\'Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0\')...xactions

以上是关于SQLServer跨库查询--分布式查询的主要内容,如果未能解决你的问题,请参考以下文章

微服务数据库分库设计解决方案(跨库关联查询分布式事务处理)

微服务数据库分库设计解决方案(跨库关联查询分布式事务处理)

微服务数据库分库设计解决方案(跨库关联查询分布式事务处理)

微服务数据库分库设计解决方案(跨库关联查询分布式事务处理)

Oracle数据库怎样跨库查询?

sql server 跨库查询