惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
Recent Announcements
Recent Announcements
IT之家
IT之家
人人都是产品经理
人人都是产品经理
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
大猫的无限游戏
大猫的无限游戏
U
Unit 42
罗磊的独立博客
博客园 - Franky
WordPress大学
WordPress大学
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
SecWiki News
SecWiki News
V
Vulnerabilities – Threatpost
P
Privacy International News Feed
P
Palo Alto Networks Blog
F
Fortinet All Blogs
P
Proofpoint News Feed
博客园 - 叶小钗
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
Spread Privacy
Spread Privacy
S
Securelist
C
Cisco Blogs
I
Intezer
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cyberwarzone
Cyberwarzone
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy & Cybersecurity Law Blog
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
S
Schneier on Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
GbyAI
GbyAI
T
Troy Hunt's Blog
T
Threatpost
博客园 - 司徒正美
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog
AWS News Blog
AWS News Blog
T
The Blog of Author Tim Ferriss
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
酷 壳 – CoolShell
酷 壳 – CoolShell
Google DeepMind News
Google DeepMind News
Know Your Adversary
Know Your Adversary
S
SegmentFault 最新的问题

博客园 - littlewood

最近状态不太好。 父窗体转向另一个页面 - littlewood - 博客园 利用程序动态管理Web.config文件 - littlewood - 博客园 web.config信息及RSA加密方式! 资料 大学生注册 收藏内容 个人的低级错误 - littlewood - 博客园 sql时间函数的基本用法 ViewState相关文章推荐 asp.net部分页面刷新数据(转) 几篇FORMS验证的文章,闲了看一下 求助:一个很奇怪的问题 一个存储过程比较好的例子 服务器控件开发起步(一):控件呈现 掌握 Ajax,第 1 部分: Ajax 简介 - 如何使用VS.NET调试数据库存储过程 应用数据库的知识 摘录的关于NULL的
触发器在增量同步数据的运用. (摘)
littlewood · 2006-02-26 · via 博客园 - littlewood

触发器可以记录对表的添加,修改,删除,
这样可以通过触发器,记录一段时间内的表的变动的记录,把这些记录存到一个变动记录表里,
数据同步的时候,就可以读取这张变成的记录表,只需要同步变动过的记录,这样可以大大提高同步的速度.
对原表删除的操作,可以能新表做DELETE操作
对原表进行Insert 或Update操作,可以执行新建或更新操作.
下面是一个触发器(SQL SERVER 2000)的例子:

 1if exists (select * from dbo.sysobjects where id = object_id(N'[risk].[TRG_GUARANTEE_R_IN_HG]'and OBJECTPROPERTY(id, N'IsTrigger'= 1)
 2drop trigger [risk].[TRG_GUARANTEE_R_IN_HG]
 3if exists (select * from dbo.sysobjects where id = object_id(N'[risk].[TRG_GUARANTEE_R_DEL_HG]'and OBJECTPROPERTY(id, N'IsTrigger'= 1)
 4drop trigger [risk].[TRG_GUARANTEE_R_DEL_HG]
 5CREATE TRIGGER TRG_GUARANTEE_R_IN_HG
 6ON GUARANTEE_R
 7FOR INSERT,UPDATE
 8AS
 9UPDATE A SET ARJ_MARK='M',CREATE_TIME=GETDATE(),USING_FLAG='0000000000'
10    FROM LOG_ENTRY_INC2 A INNER JOIN INSERTED B ON  A.ENTRY_ID = B.ENTRY_ID
11    INSERT INTO LOG_ENTRY_INC2(ENTRY_ID,ARJ_MARK,CREATE_TIME,USING_FLAG)
12    SELECT ENTRY_ID,'M',GETDATE(),'0000000000'
13    FROM INSERTED where ENTRY_ID NOT IN (SELECT ENTRY_ID FROM LOG_ENTRY_INC2)
14CREATE TRIGGER TRG_GUARANTEE_R_DEL_HG
15ON GUARANTEE_R
16FOR DELETE
17AS
18UPDATE A SET ARJ_MARK='D',CREATE_TIME=GETDATE(),USING_FLAG='0000000000'
19    FROM LOG_ENTRY_INC2 A INNER JOIN INSERTED B ON  A.ENTRY_ID = B.ENTRY_ID
20INSERT INTO LOG_ENTRY_INC2(ENTRY_ID,ARJ_MARK,CREATE_TIME,USING_FLAG)
21    SELECT ENTRY_ID,'D',GETDATE(),'0000000000'
22    FROM DELETED  where ENTRY_ID NOT IN (SELECT ENTRY_ID FROM LOG_ENTRY_INC2)

另外需要说明的:
触发器没有updated,更新时,旧数据是deleted,新数据是inserted