--------跨数据库更新表的一个问题(在线等)-------------
在服务器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