引言:
有时候(比如在做库比对时),我们需要一条SQL语句查询多个数据库。在oracle环境下有dblink使用,在异构下需要中间件来实现,如果在sqlServer下有更简单地实现方式。
正文:
在SqlServer下,有3个元素可以实现此功能:
sp_addlinkedserver
sp_addlinkedsrvlogin
openrowset
详细说明,请查看MSDN说明文档。以下只给出语法描述:
--快速方式(一次性连接)
select * from openrowset(
'sqloled',
'remote host';'username';'pwd',
dbname.dbowner.tablename
) as t
--创建链接服务方式
use master
go
exec sp_addlinkedserver 'svrlinked_url', N'SQL SERVER'
exec sp_addlinkedsrvlogin
'svrlinkedName', 'false', null, 'username', 'pwd'
select * from svrlinkedName.dbowern.tablename as t
还是很方便的。