日期:2014-05-18  浏览次数:20516 次

大家给我 看看这条sql错哪了,该如何写,在线等!!!(y代表远程,b代表本地,我想实现本地表更新得同时远程得表也更新)
update   y  
set   y.lei=b.lei
from   opendatasource  
(
'sqloledb ',
'data   source=www.yy.net;user   id=sa;password= '
).xg.dbo.kroa_wuliu_ruku   as   y   inner   join   kroa_wuliu_ruku   as   b
on   b.pinming=y.pinming   and   b.kuwei=y.kuwei   and   b.pihao=y.pihao     and  
(b.lei <> y.lei)

提示:
服务器:   消息   170,级别   15,状态   1,行   1
对象名   'y '   无效。


------解决方案--------------------
--那先创建链接服务器
exec sp_addlinkedserver 'srv_lnk ', ' ', 'SQLOLEDB ', 'www.yy.net '
exec sp_addlinkedsrvlogin 'srv_lnk ', 'false ',null, 'SA ', ' '
go

--然后更新
update y
set lei=b.lei
from srv_lnk.xg.dbo.kroa_wuliu_ruku as y inner join kroa_wuliu_ruku as b
on b.pinming=y.pinming and b.kuwei=y.kuwei and b.pihao=y.pihao and
(b.lei <> y.lei)

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