现在的位置: 首页 > 综合 > 正文

同步两个数据库

2018年05月06日 ⁄ 综合 ⁄ 共 1322字 ⁄ 字号 评论关闭

*--同步两个数据库的示例  

06     
07   有数据  
08   srv1.库名..author有字段:id,name,phone,  
09   srv2.库名..author有字段:id,name,telphone,adress  
10     
11   要求:  
12   srv1.库名..author增加记录则srv1.库名..author记录增加  
13   srv1.库名..author的phone字段更新,则srv1.库名..author对应字段telphone更新  
14   --*/  
15     
16   --大致的处理步骤  
17   --1.在  srv1  上创建连接服务器,以便在  srv1  中操作  srv2,实现同步  
18   exec  sp_addlinkedserver    'srv2','','SQLOLEDB','srv2的sql实例名或ip'  
19   exec  sp_addlinkedsrvlogin  'srv2','false',null,'用户名','密码'  
20   go  
21     
22   --2.在  srv1  和  srv2  这两台电脑中,启动  msdtc(分布式事务处理服务),并且设置为自动启动  我的电脑--控制面板--管理工具--服务--右键  Distributed  Transaction  Coordinator--属性--启动--并将启动类型设置为自动启动  
23   go  
24     
25     
26   --3.实现同步处理  
27     
28   --a.在srv1..author中创建触发器,实现数据即时同步  
29   --新增同步  
30   create  trigger  tr_insert_author  on  author  
31   for  insert  
32   as  
33   set  xact_abort  on  
34   insert  srv2.库名.dbo.author(id,name,telphone)  
35   select  id,name,telphone  from  inserted  
36   go  
37     
38   --修改同步  
39   create  trigger  tr_update_author  on  author  
40   for  update  
41   as  
42   set  xact_abort  on  
43   update  set  name=i.name,telphone=i.telphone  
44   from  srv2.库名.dbo.author  b,inserted  i  
45   where  b.id=i.id  
46   go  
47     
48   --删除同步  
49   create  trigger  tr_delete_author  on  author  
50   for  delete  
51   as  
52   set  xact_abort  on  
53   delete  b    
54   from  srv2.库名.dbo.author  b,deleted  d  
55   where  b.id=d.id  
56   go

抱歉!评论已关闭.