--不同服务器上的不同数据库的表的查询
'sqloledb'--固定的
'server=192.168.0.100,1433;uid=sa;pwd=sa'连接字符串,其中1433必须使用,
'select * from AIS20070418192925.dbo.t_Account'表示sql语句,dbo必须要

select * from openrowset('sqloledb','server=192.168.0.100,1433;uid=sa;pwd=sa','select * from AIS20070418192925.dbo.t_Account')

如果是传参数,要是有Exec
set @sql='server='+@IP+',1433;uid='+@SQLName+';pwd='+@SQLPWD+''
set @sql2='select * from '+@AccountName+'.dbo.t_Account'
set @sql3='select * from openrowset(''sqloledb'','''+@sql+''','''+@sql2+''')'
Exec(@sql3)


第二种方法
--创建链接服务器
exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码'

--查询示例
select * from ITSV.数据库名.dbo.表名

--导入示例
select * into 表 from ITSV.数据库名.dbo.表名

--以后不再使用时删除链接服务器
exec sp_dropserver 'ITSV' , 'droplogins'

posted on 2012-07-19 15:02  成天狂  阅读(361)  评论(0)    收藏  举报