用触发器解决不同服务器数据库同步

有数据   

  srv1.库名..author有字段:id,name,phone,   

  srv2.库名..author有字段:id,name,telphone,adress   

    

  要求:   

  srv1.库名..author增加记录则srv1.库名..author记录增加   

  srv1.库名..author的phone字段更新,则srv1.库名..author对应字段telphone更新   

  --*/   

    

  --大致的处理步骤   

  --1.在   srv1   上创建连接服务器,以便在   srv1   中操作   srv2,实现同步   

  exec   sp_addlinkedserver     'srv2','','SQLOLEDB','srv2的sql实例名或ip'   

  exec   sp_addlinkedsrvlogin   'srv2','false',null,'用户名','密码'   

  go   

    

  --2.在   srv1   和   srv2   这两台电脑中,启动   msdtc(分布式事务处理服务),并且设置为自动启动   

  我的电脑--控制面板--管理工具--服务--右键   Distributed   Transaction   Coordinator--属性--启动--并将启动类型设置为自动启动   

  go   

    

    

  --3.实现同步处理   

    

  --a.在srv1..author中创建触发器,实现数据即时同步   

  --新增同步   

  create   trigger   triggername   on   author   

  for   insert   

  as   

  set   xact_abort   on   

  insert   srv2.库名.dbo.author(id,name,telphone)   

  select   id,name,telphone   from   inserted   

  go   

    

  --修改同步   

  create   trigger   triggername   on   author   

  for   update   

  as   

  set   xact_abort   on   

  update   b   set   name=i.name,telphone=i.telphone   

  from   srv2.库名.dbo.author   b,inserted   i   

  where   b.id=i.id   

  go   

    

  --删除同步   

  create   trigger   triggername   on   author   

  for   delete   

  as   

  set   xact_abort   on   

  delete   b     

  from   srv2.库名.dbo.author   b,deleted   d   

  where   b.id=d.id   

  go   


转载于:https://my.oschina.net/dongzqxp/blog/397996

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值