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

--------跨数据库更新表的一个问题(在线等)-------------
在服务器A(IP:192.168.11.11)上有数据库Adb,Adb中有表a_table  
在服务器B(IP:192.168.11.50)上有数据库Bdb,Bdb中有表b_table  

在Adb中   使用一个语句来实现更新b_table   中的值。即:

update   b_table   set   b_Name=a_table.MyName,   b_type=a_table.MyType   from
b_table,a_table   where   a.id=b.id

(上面的语句是在同一个数据库的情况下可以实现,但现在换成不同服务器上的不同数据库应该怎么改上面的语句呢?谢谢:))-

------解决方案--------------------
添加链接服务器
------解决方案--------------------
--Step 1 CreatLinkServer
sp_addlinkedserver @server= '别名 ',
@provider= 'SQLOLEDB ',
@srvproduct = '数据库名 ',
@datasrc = '服务器名 '
go
--Step 2 CreateLogin
sp_addlinkedsrvlogin @rmtsrvname = '别名 ',
@useself = 'false ',
@locallogin = null,
@rmtuser = '登陆用户 ',
@rmtpassword = '密码 '

update b_table
set b_Name=a_table.MyName,
b_type=a_table.MyType from
b_table,别名.数据库名.dbo.a_table where a.id=b.id
------解决方案--------------------
首先在服务器a上,要建立一个链接数据库:
exec sp_addlikedserver
exec sp_addlinkedsrvlogin
update a set b_Name=a_table.MyName, b_type=a_table.MyType from
[192.168.11.50].bdb.dbo.b_table a,a_table b where a.id=b.id