跨数据库操作拷贝数据,程序怎么操作比较好
create procedure copykucun
as
begin
exec sp_addlinkedserver 'MLDBSQL', 'ms','SQLOLEDB','computerA'
exec sp_addlinkedsrvlogin 'MLDBSQL','false', NULL,'sa','sa'
SET IDENTITY_INSERT LOCAL..TABLEB ON
insert into LOCAL..TABLEB
select * from MLDBSQL.computerA.wjhs.kucun
exec sp_dropserver 'MLDBSQL','droplogins'
end
程序第一次调用可以,后面就出错。
------解决方案--------------------
exec master.dbo.sp_addlinkedserver @server=N'DBSERVER',@srvproduct=N'SQL Server'
exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'DBSERVER',@useself=N'false',@locallogin=N'linker',
@rmtuser=N'linker',@rmtpassword='password'
注意:假设链接的DB服务器为DBSERVER, 首先要在DBserver建立linker密码为password的login帐号。
然后通过上述语句建立链接服务器。
最后访问DB语句按SQL的四段命名法:即服务器.数据库名称.schema.表名称
e.g.
select * from DBSERVER.Master.dbo.sysobjects;
按上述操作必可获取正确结果。