同步两个数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/* 
  作者:邹建 
  */ 
   
  /*--同步两个数据库的示例 
   
  有数据 
  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  tr_insert_author  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  tr_update_author  on  author 
  for  update 
  as 
  set  xact_abort  on 
  update  set  name=i.name,telphone=i.telphone 
  from  srv2.库名.dbo.author  b,inserted  i 
  where  b.id=i.id 
  go 
   
  --删除同步 
  create  trigger  tr_delete_author  on  author 
  for  delete 
  as 
  set  xact_abort  on 
  delete  b   
  from  srv2.库名.dbo.author  b,deleted  d 
  where  b.id=d.id 
  go 
posted @   曾祥展  阅读(3409)  评论(1编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· 腾讯元宝接入 DeepSeek R1 模型,支持深度思考 + 联网搜索,好用不卡机!
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
点击右上角即可分享
微信分享提示