日期:2014-05-17  浏览次数:20356 次

同步数据存储过程?
跨数据库操作拷贝数据,程序怎么操作比较好

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;

按上述操作必可获取正确结果。