急!!!(还给加分):求sql server2005的一条语句
来源:百度知道 编辑:UC知道 时间:2024/05/16 17:15:48
我在 db1库里写一个存储过程时 要调用db2库里的一个存储过程SP_1
库db1 和库db2 不在同一台机上
要怎么写语句?
--方法一:用OPENDATASOURCE 方法去操作异地数据库
declare @i int
set @i=1
select * from OPENDATASOURCE('SQLOLEDB','Data Source=IP地址;User ID=sa;Password=密码').异地数据库名.dbo.表名 A inner join 本地数据库名..表名 B
on A.关联字段=B.关联字段 and A.字段名称=@i
--方法二:如果经常访问或数据量大,建议用链接服务器
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--查询示例
select * from srv_lnk.数据库名.dbo.表名
--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名
go
--以后不再使用时删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
--如果只是临时访问,可以直接用openrowset
--查询示例
select * from ope