使用触发器即时同步两个表的实例
即时同步两个表的实例:
--测试环境: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
使用触发器即时同步两个表的实例相关推荐
- 触发器初接触-同步两个表的指定字段
博客已经申请5个月了,= = 到现在一篇随笔都没写过.那就写写吧. 前几天,一位朋友说他有个需求:同步两个表的指定字段,问有什么办法.后来用触发器来实现了下,之前也没写过,所以还是在这里记录下吧. 需 ...
- 关于跨DB增量(增、改)同步两张表的数据小技巧
有些场景下,需要隔离不同的DB,彼此DB之间不能互相访问,但实际的业务场景又需要从A DB访问B DB的情形,这时怎么办?我认为有如下常规的三种方案: 1.双方提供RESET API,需要访问不同DB ...
- mysql 触发器 模板_MySQL 触发器例子(两张表同步增加和删除)
MySQL 触发器例子(两张表同步增加和删除),有需要的朋友可以参考下. 例子1: 创建两个表,目的是在一个表里添加一条记录,另一个表也添加一条记录: DROP TABLE IF EXISTS tab ...
- mysql触发器删除同步_MySQL 触发器例子(两张表同步增加和删除)
以下两个例子来自: http://www.cnblogs.com/nicholas_f/archive/2009/09/22/1572050.html 实测有效,但是原帖的分隔符不正确,因此稍作修改. ...
- mysql 两个数据库指定表同步_mysql从2个数据库中同步两个表
我无法相信你没有找到合适的脚本来做到这一点.根据服务器到服务器的带宽和连接以及表数据大小,您可以: >直接转移整个表: mysqldump [options] sourcedatabase ta ...
- MySQL同步两张表数据
一.背景 项目中客户需要一个发布/编辑的功能,数据要存档. 我的方案设计是新建两张表,一张主表用于查询,一张临时表用于增删改. 增删改操作的表命名为XXX_temp,后台管理操作.后台操作完成后需要把 ...
- sql server 触发器实时同步数据库表数据
sql server 触发器实时同步数据库表数据 创建两个相同结构的数据库表 CREATE TABLE [dbo].[Table_1]([id] [varchar](50) NOT NULL,[nam ...
- MySQL可以同时修改两个表吗_(10)MySQL触发器(同时操作两张表)
什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合.触发器的这种特性可以协助应用在数据库端确保数据的完整性. 举个例子,比如你现在有两个表[用户表]和[日志 ...
- (10)MySQL触发器(同时操作两张表)
什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合.触发器的这种特性可以协助应用在数据库端确保数据的完整性. 举个例子,比如你现在有两个表[用户表]和[日志 ...
最新文章
- hdu2037 今年暑假不AC
- 【转载】安卓开发者在使用deepin15.4时可能会遇到的问题
- 进程间通信-Queue 消息队列 先进先出
- mongodb运算符使用
- Python turtle库绘制奥运五环
- Linux下的“句柄”(文件句柄,窗口句柄)
- 获取相对于父元素的位置
- 美团到店综合知识图谱的构建与应用
- 编译原理实验c语言cfg文法,编译原理实验指导终稿.pdf
- cad文字递增快捷键_AutoCAD常用快捷键命令大全(文字版)
- c语言版输出2-200以内的素数
- SpringCloud学习笔记7——初级篇之服务降级
- 机器学习中的度量指标:ROC曲线,AUC值,K-S曲线
- YOLOX改进之模型轻量化(Lite)
- 抓包 把笔记本改造成无线路由器 —— 手机抓包牛刀小试
- python利用turtle库绘制正方形绕一个顶点旋转
- Java大端字节和小端字节
- Java 导出exl表格 一个单元格内换行
- 大厂面试题Object object = new Object()
- c语言录取分数线,近三年各省市录取分数线
热门文章
- jvm十:类加载器解析
- go语言初体验(流程控制、range遍历、函数、结构体、面向对象)
- suse安装gcc,升级到4.8.5
- Java线程:线程的同步与锁
- gluPerspective和gluLookAt的关系
- Java Programming Test Question 3
- gulp-autoprefixer报Promise is not defined错误
- ASP.NET MVC:4 Ways To Prevent Duplicate Form Submission(转载)
- SSH Secure Shell Client无法连接utbuntu的报错
- python将文件夹打包