知识大全 如何通过触发器实现数据库的即时同步

Posted

篇首语:学之广在于不倦,不倦在于固志。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何通过触发器实现数据库的即时同步相关的知识,希望对你有一定的参考价值。

问题 如何通过触发器实现数据库的即时同步?

  解答 具体的解决方法请参考下文

  即时同步两个表的示例如下:

  

  测试环境如下:SQL Sever 数据库 远程主机名:xz 用户名:sa 密码:无 数据库名:test

  

  创建测试表 请注意不能用标识列做主键 因为不能进行正常的更新

  然后在本机上创建测试表 注意远程主机上也要做同样的建表操作 只是不写触发器

  if exists (select * from dbo sysobjects where id = object_id(N [test] ) and OBJECTPROPERTY(id N IsUserTable ) = )

  drop table [test]

  

  create table test(id int not null constraint PK_test primary key

   name varchar( ))

  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

  mit tran

  go

  

   插入数据测试

  insert into test

  select aa

  union all select bb

  union all select c

  union all select dd

  union all select ab

  union all select bc

  union all select ddd

  

   删除数据测试

  delete from test where id in( )

  

   更新数据测试

  update test set name=name+ _ where id in( )

  

   最后显示测试的结果

  select * from test a full join

cha138/Article/program/Oracle/201311/17111

相关参考

什么叫同步计数器?

  同步计数器:能累计或寄存输入脉冲个数且电路中各触发器状态更新是同步进行的一种时序逻辑电路。

可控硅励磁中同步变压器有什么作用?

  同步变压器对于可控硅整流的励磁系统来说,必须有触发脉冲才能控制可控硅整流。而在什么时刻给可控硅发触发脉冲是要有时间基准的,阳极电压同步就是为了给触发脉冲提供时间基准的。一般整流桥阳极电压都比较高,

可控硅励磁中同步变压器有什么作用?

  同步变压器对于可控硅整流的励磁系统来说,必须有触发脉冲才能控制可控硅整流。而在什么时刻给可控硅发触发脉冲是要有时间基准的,阳极电压同步就是为了给触发脉冲提供时间基准的。一般整流桥阳极电压都比较高,

知识大全 SQL Server数据库同步问题

SQLServer数据库同步问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们可以通过数据

知识大全 Oracle数据库中有关触发器问题

Oracle数据库中有关触发器问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  触发器是一种特

知识大全 oracle数据库如何创建自增列的技巧教程

  Oracle没有自增字段这样的功能但是通过触发器(trigger)和序列(sequence)可以实现  先建一个测试表了  createtableuserlogin(  id  

知识大全 数据库触发器和作业结合讲解

  /*作业处理实例  根据sendTab的SendTime定制作业 并且在该作业完成时可以自动删除作业*/  示例  测试表createtablesendTab(IDintidentity

知识大全 关于触发器修改自身数据表实例

  前言  当然在触发器修改自身数据表对于有ORACLE数据库后台编程人员来说并不应该算是一个难题可能在平时的工作中就经常要遇到  但对于刚刚使用ORACLE数据库后台编程人员来说的确是一个比较烦人的

知识大全 数据库开发规范详细介绍[2]

    四其他设计  避免使用触发器  触发器的功能通常可以用其他方式实现在调试程序时触发器可能成为干扰假如确实需要采用触发器  要集中对它文档化  使用常用英语(或者其他任何语言)而不要使用编码  

步入大数据时代,人们越来越关注数据的存储问题。有研究表明,用于即时访问的“热数据”,最好用闪存:而那些及时性不强,人们又

步入大数据时代,人们越来越关注数据的存储问题。有研究表明,用于即时访问的“热数据”,最好用闪存:而那些及时性不强,人们又经常使用的“温数据”则应保存在磁盘里;用于长期存档的“冷数据”就适合用专用磁带记