日期:2014-05-17  浏览次数:20509 次

两个sql 服务器上的数据互相传输
现在需要两个sql 服务器上的数据互相传输、写的是存错过程建立作业让其自动执行、在执行的过程中如何用sql 判断两个服务器网络是否通呢?  
sql 服务器 数据 网络

------解决方案--------------------
这个要建链接服务器:

exec sp_addlinkedserver   'DB32',   '   ',   'SQLOLEDB',   '192.168.3.x\SQLEXPRESS2008R2'   
exec sp_addlinkedsrvlogin 'DB32',   'false',null,   'sa',   'xxxxxxx'   

--查询
select   *   from   链接名称.数据库名.dbo.表名   

--不用后删除
exec   sp_dropserver     '数据库名',   'droplogins'




--连接远程/局域网数据(openrowset/openquery/opendatasource)   
--1、openrowset   

--查询示例   
select   *   from   openrowset(   'SQLOLEDB',   'sql服务器名   ';   '用户名';   '密码   ',数据库名.dbo.表名)   

--生成本地表   
select   *   into   表   from   openrowset(   'SQLOLEDB',   'sql服务器名';   '用户名   ';   '密码   ',数据库名.dbo.表名)   

--把本地表导入远程表   
insert   openrowset(   'SQLOLEDB',   'sql服务器名';   '用户名';   '密码   ',数据库名.dbo.表名)   
select   *from   本地表   

--更新本地表   
update   b   
set   b.列A=a.列A   
  from   openrowset(   'SQLOLEDB   ',   'sql服务器名   ';   '用户名   ';   '密码   ',数据库名.dbo.表名)as   a   inner   join   本地表   b   
>exec sp_addlinkedserver @server=’别名’,@provider=’sqloledb’,@srvproduct=’’,@datasrc=’远程服务器IP’