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跨库查询--分布式查询的主要内容,如果未能解决你的问题,请参考以下文章