不同服务器间的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.表名)
------解决方案--------------------学习一下