日期:2014-05-19  浏览次数:20469 次

不同服务器间的SQL语句数据更新!
假如局域网上有两个服务器jimmy-1和jimmy-2
我想将一个库的数据更新到另一个库上
能直接用SQL语句写吗?
比如:
update   jimmy-1.库1.dbo.tab1     a
set   f1=(select   f1   from   jimmy-2.库2.dbo.tab2  
                  where   a.f2=f2)

------解决方案--------------------
update jimmy_1.库1.dbo.tab1
set f1=(select f1 from jimmy_2.库2.dbo.tab2
where f2=jimmy_2.库2.dbo.tab2.f2)
------解决方案--------------------
--先创建链接服务器,然后再用楼上的SQL语句。


--创建链接服务器
exec sp_addlinkedserver 'srv_lnk ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'srv_lnk ', 'false ',null, '用户名 ', '密码 '
go

--查询示例
select * from srv_lnk.数据库名.dbo.表名


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


--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset( 'SQLOLEDB '
, 'sql服务器名 '; '用户名 '; '密码 '
,数据库名.dbo.表名)



------解决方案--------------------
学习一下