急!!!(还给加分):求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