即时同步两个表的实例:

--测试环境:SQL2000,远程主机名:xz,用户名:sa,密码:无,数据库名:test

--创建测试表,不能用标识列做主键,因为不能进行正常更新
--在本机上创建测试表,远程主机上也要做同样的建表操作,只是不写触发器
if exists (select * from dbo.sysobjects where id = object_id(N'[test]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [test]

create table test(id int not null constraint PK_test primary key
 ,name varchar(10))
go

--创建同步的触发器
create trigger t_test on test
for insert,update,delete
as
set  XACT_ABORT on
--启动远程服务器的MSDTC服务
exec master..xp_cmdshell 'isql /S"xz" /U"sa" /P"" /q"exec master..xp_cmdshell ''net start msdtc'',no_output"',no_output

--启动本机的MSDTC服务
exec master..xp_cmdshell 'net start msdtc',no_output

--进行分布事务处理,如果表用标识列做主键,用下面的方法
BEGIN DISTRIBUTED TRANSACTION
delete from openrowset('sqloledb','xz';'sa';'',test.dbo.test)
 where id in(select id from deleted)
insert into openrowset('sqloledb','xz';'sa';'',test.dbo.test)
 select * from inserted
commit tran
go

--插入数据测试
insert into test
select 1,'aa'
union all select 2,'bb'
union all select 3,'c'
union all select 4,'dd'
union all select 5,'ab'
union all select 6,'bc'
union all select 7,'ddd'

--删除数据测试
delete from test where id in(1,4,6)

--更新数据测试
update test set name=name+'_123' where id in(3,5)

--显示测试的结果
select * from test a full join
openrowset('sqloledb','xz';'sa';'',test.dbo.test) b on a.id=b.id

使用触发器即时同步两个表的实例相关推荐

  1. 触发器初接触-同步两个表的指定字段

    博客已经申请5个月了,= = 到现在一篇随笔都没写过.那就写写吧. 前几天,一位朋友说他有个需求:同步两个表的指定字段,问有什么办法.后来用触发器来实现了下,之前也没写过,所以还是在这里记录下吧. 需 ...

  2. 关于跨DB增量(增、改)同步两张表的数据小技巧

    有些场景下,需要隔离不同的DB,彼此DB之间不能互相访问,但实际的业务场景又需要从A DB访问B DB的情形,这时怎么办?我认为有如下常规的三种方案: 1.双方提供RESET API,需要访问不同DB ...

  3. mysql 触发器 模板_MySQL 触发器例子(两张表同步增加和删除)

    MySQL 触发器例子(两张表同步增加和删除),有需要的朋友可以参考下. 例子1: 创建两个表,目的是在一个表里添加一条记录,另一个表也添加一条记录: DROP TABLE IF EXISTS tab ...

  4. mysql触发器删除同步_MySQL 触发器例子(两张表同步增加和删除)

    以下两个例子来自: http://www.cnblogs.com/nicholas_f/archive/2009/09/22/1572050.html 实测有效,但是原帖的分隔符不正确,因此稍作修改. ...

  5. mysql 两个数据库指定表同步_mysql从2个数据库中同步两个表

    我无法相信你没有找到合适的脚本来做到这一点.根据服务器到服务器的带宽和连接以及表数据大小,您可以: >直接转移整个表: mysqldump [options] sourcedatabase ta ...

  6. MySQL同步两张表数据

    一.背景 项目中客户需要一个发布/编辑的功能,数据要存档. 我的方案设计是新建两张表,一张主表用于查询,一张临时表用于增删改. 增删改操作的表命名为XXX_temp,后台管理操作.后台操作完成后需要把 ...

  7. sql server 触发器实时同步数据库表数据

    sql server 触发器实时同步数据库表数据 创建两个相同结构的数据库表 CREATE TABLE [dbo].[Table_1]([id] [varchar](50) NOT NULL,[nam ...

  8. MySQL可以同时修改两个表吗_(10)MySQL触发器(同时操作两张表)

    什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合.触发器的这种特性可以协助应用在数据库端确保数据的完整性. 举个例子,比如你现在有两个表[用户表]和[日志 ...

  9. (10)MySQL触发器(同时操作两张表)

    什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合.触发器的这种特性可以协助应用在数据库端确保数据的完整性. 举个例子,比如你现在有两个表[用户表]和[日志 ...

最新文章

  1. java中struts2日期_Struts2中Date日期转换的问题
  2. 【RK3399Pro学习笔记】四、ROS 创建工作空间与功能包
  3. 袁亚湘:愿为数学做更多
  4. C语言过时了?你在做梦?
  5. java 提取电话号码_java – 如何使用正则表达式提取字符串的电话号码?
  6. linux3.10内核支持mpls,将MPLS编译进linux内核中
  7. python绘制正方形、利用turlr_《像计算机科学家一样思考Python》学习笔记(四)...
  8. 利用JDK自带的keytool生成SSL证书然后导入到SpringBoot
  9. mysql 单向自动同步_mysql单向自动同步
  10. Gentoo解决Windows系统txt文本中文乱码问题
  11. python之MRO和垃圾回收机制
  12. AppStore下载安装失败
  13. html自动刷新插件谷歌,Super Auto Refresh:定时自动重新刷新网页
  14. The overload Pattern
  15. Discuz!您当前的访问请求当中含有非法字符,已经被系统拒绝解决办法
  16. 云原生—Rust编程语言能与C/C++媲美
  17. 西密歇根大学计算机科学专业排名,西密歇根大学有哪些专业_专业排名(USNEWS美国大学排名)...
  18. 【python爬虫】使用代理IP进行网站爬取
  19. 中国轮胎行业前景规划及未来发展趋势展望报告2022-2028年版
  20. 狂神说——JavaScript最新教程通俗易懂

热门文章

  1. linux下多线程实现服务端
  2. mybaits八:select查询返回map集合
  3. 万能的model数据选择列表
  4. 马哥2013年运维视频笔记 day02 Linux系统常识
  5. linux学习blog
  6. 直接定址表03 - 零基础入门学习汇编语言74
  7. 仅通过SQL备份文件将MOSS服务器场及所有网站数据迁移到新的一台服务器上
  8. 微信小程序 通过云函数请求http网站接口
  9. STC89C52单片机 LED灯闪烁
  10. php接受post值报错,php接收post参数时报错怎么办