`
逆风的香1314
  • 浏览: 1431996 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过触发器实现数据库的即时同步

阅读更多

--即时同步两个表的实例:

--测试环境: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


 

分享到:
评论

相关推荐

    一种基于触发器技术的SQL Server数据库实时备份方案.pdf

    具体地,实时备份方案使用双机备份方式,通过在数据库系统中部署特别设计的触发器程序,当数据发生变化时,触发器自动执行数据备份代码,同时记录数据变化前后的状态以及变化的详细信息。这样,当需要进行数据恢复时...

    两台SQL-Server数据同步解决方案

    例如,可以在本地创建一张表,并通过触发器维护同步状态字段(如state)。这种方式适用于简单的测试环境或特定需求。 #### 七、总结 通过对SQL Server复制机制的理解及实施步骤的学习,我们可以有效地实现两台SQL ...

    数据库同步系统_javaoracle_CC08FB424F88_92444.c.c_B51.955-2004_44efbf3ab

    3. **Oracle数据库特性**:Oracle支持多种数据库复制技术,如逻辑复制(通过触发器和日志读取)、物理复制(如GoldenGate)、流复制和实时应用集群(RAC),这些技术可实现不同级别的数据同步和故障切换。...

    Oracle触发器在日志管理开发中的应用.pdf

    而通过Oracle数据库的触发器,可以将日志管理的部分或全部逻辑转移到数据库层面,从而简化开发流程,降低维护难度。 触发器是Oracle数据库中的一种重要特性,它是与数据表关联的存储过程,当特定的DML操作(INSERT...

    Oracle数据表更新即时通告的实现方法.pdf

    本文主要讨论如何在Oracle数据库中实现数据表更新的即时通告功能,尤其适用于数据量大、多客户端同时在线、实时性要求高的情况。 传统的通告方法有两种:被动方式和主动方式。被动方式是由客户端定时向服务器查询...

    使用Oracle物化视图实现数据同步复制的研究与实现.pdf

    同时,配置物化视图的刷新策略,可以是定时刷新或基于触发器的即时刷新。 4. **物化视图的同步**:物化视图的更新可以通过两种方式实现:实时(即物化视图日志)和批量(定时任务)。实时更新能够保证数据的高一致...

    websocket监听数据库

    这可以通过监听数据库的触发器、日志或者使用特定的数据库API来实现。例如,MySQL有InnoDB的Change Data Capture (CDC),MongoDB有Tailable Cursors,这些都能帮助我们获取到数据库的实时变更事件。 2. **WebSocket...

    单机模拟ORACLE分布式数据库数据复制环境的实现

    本篇文章将深入探讨如何在单机环境下模拟Oracle分布式数据库的数据复制环境,以实现数据的高效同步与备份。 首先,理解Oracle分布式数据库的概念至关重要。分布式数据库是由分布在不同地理位置的多个物理数据库组成...

    MYSQL和MSSQL会员同步.rar_mssql_mysql和MSSQL同步_会员_会员数据_数据同步

    - **实时同步**:通过触发器、事件或API实现数据改变时的即时同步,确保数据一致性。 - **批量同步**:定期执行脚本或使用专门的工具进行全量或增量同步,适合大量数据迁移。 4. **工具和技术**: - **ETL...

    触发器里调控制器方法.docx

    文档标题涉及的是在数据库中使用...这种方法可以用于日志记录、数据同步或其他需要即时响应数据库事件的场景。然而,需要注意的是,频繁的触发器调用可能对数据库性能造成影响,因此在实际应用中应谨慎设计和优化。

    信息化校园建设中数据库同步问题的研究

    快照法通过捕获数据库的即时映像(快照),将其作为更新副本,实现数据同步。这一方法不依赖特别的同步机制,操作简单且易于管理。但是快照法无法有效区分具体哪些数据发生了变化,因此在数据量较大或频繁变化的情况...

    数据库连接工具Navicat

    7. **实时同步与提醒**:Navicat支持实时数据同步,允许用户设置数据订阅,当数据库发生变动时,会即时通知用户。这对于需要实时监控数据变化的应用场景尤其重要。 8. **安全性**:Navicat提供了强密码策略和SSL...

    EXCEL+ACCESS实现工作管理系统(报表+数据库技术)

    可能通过VBA脚本实现两个应用间的数据同步,使得更新在Excel中的工作信息能即时反映到Access数据库中,反之亦然,确保信息的实时性和一致性。 6. **用户界面设计**:系统的易用性至关重要。陈建霖可能在设计时考虑...

    Oracle与Sql Server数据库数据交换中间件的设计与应用.pdf

    实时监听确保了数据的即时同步。 5. 临时数据表:在数据交换过程中,可能需要使用临时数据表来暂存数据,这有助于优化数据处理流程,防止数据丢失,并提高整体效率。 6. 数据共享与转录:中间件设计的目标是实现在...

    Navicat Premium 12客户端工具

    2. **数据同步**:通过对比数据库结构或数据,Navicat可以生成同步脚本,确保数据库之间的数据一致性。 3. **数据导入导出**:支持从多种文件格式(如CSV、Excel、XML等)导入数据到数据库,以及将数据库数据导出为...

    【Hadoop与大数据38】构建生态化分布式数据库架构体系(陶勇)

    - **运维复杂度高**:传统的数据库触发器(DBTrigger)、表导出(Dumptable)和应用消息队列(ApplicationMQ)等方式存在较高的运维难度。 - **性能瓶颈**:这些方法容易造成数据库或网络瞬间压力过大。 - **业务...

    数据库比较与同步软件DBSync v1.1

    4. **实时数据同步**:DBSync具备实时监控和触发器设置能力,一旦发现源数据库有变动,可以即时同步到目标数据库,实现数据的实时更新。 5. **计划任务**:用户可以设定定期的同步任务,自动执行数据库同步操作,...

    Navicat 8.0.20数据库管理工具.rar

    4. **数据同步**:Navicat提供了数据库比较和同步功能,可以分析两个数据库之间的差异,并生成脚本以实现数据的一致性。 5. **数据导入导出**:用户可以将数据从CSV、Excel等格式导入到数据库,或者将数据库中的...

    数据库导出文档工具.zip

    这在数据库频繁更新、需要即时同步结构的情况下非常实用。同时,这也减少了对生产环境的干扰,保证了数据的安全性。 使用此类工具通常涉及以下步骤: 1. 配置数据库连接:用户需要输入MySQL或Oracle服务器的相关...

Global site tag (gtag.js) - Google Analytics