即时同步两个表的实例:

--测试环境: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. hdu2037 今年暑假不AC
  2. 【转载】安卓开发者在使用deepin15.4时可能会遇到的问题
  3. 进程间通信-Queue 消息队列 先进先出
  4. mongodb运算符使用
  5. Python turtle库绘制奥运五环
  6. Linux下的“句柄”(文件句柄,窗口句柄)
  7. 获取相对于父元素的位置
  8. 美团到店综合知识图谱的构建与应用
  9. 编译原理实验c语言cfg文法,编译原理实验指导终稿.pdf
  10. cad文字递增快捷键_AutoCAD常用快捷键命令大全(文字版)
  11. c语言版输出2-200以内的素数
  12. SpringCloud学习笔记7——初级篇之服务降级
  13. 机器学习中的度量指标:ROC曲线,AUC值,K-S曲线
  14. YOLOX改进之模型轻量化(Lite)
  15. 抓包 把笔记本改造成无线路由器 —— 手机抓包牛刀小试
  16. python利用turtle库绘制正方形绕一个顶点旋转
  17. Java大端字节和小端字节
  18. Java 导出exl表格 一个单元格内换行
  19. 大厂面试题Object object = new Object()
  20. c语言录取分数线,近三年各省市录取分数线

热门文章

  1. jvm十:类加载器解析
  2. go语言初体验(流程控制、range遍历、函数、结构体、面向对象)
  3. suse安装gcc,升级到4.8.5
  4. Java线程:线程的同步与锁
  5. gluPerspective和gluLookAt的关系
  6. Java Programming Test Question 3
  7. gulp-autoprefixer报Promise is not defined错误
  8. ASP.NET MVC:4 Ways To Prevent Duplicate Form Submission(转载)
  9. SSH Secure Shell Client无法连接utbuntu的报错
  10. python将文件夹打包