怎么去判断该表有新纪录,或者修改了某条记录

caipuhappy 2012-09-11 09:58:32
我需要写存储过程,半个小时执行一次,想知道某表是否修改了记录或者新增了记录,怎么判断呢?
...全文
219 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
汤姆克鲁斯 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

我是要即时追踪另一个服务器上的数据,并同步到我的机器上,求高手!数据库版本都是05的
[/Quote]
那你直接用复制啊
caipuhappy 2012-09-11
  • 打赏
  • 举报
回复
我是要即时追踪另一个服务器上的数据,并同步到我的机器上,求高手!数据库版本都是05的
KevinLiu 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

如果用2008 的话,可以直接启用CDC,获取表的增、删、改的记录。
如果是其他版本,就在表中做update 和 insert的触发器(08之后可以使用merge来把两个操作合在一起),并把结果插到一个记录表,你到时直接去查就可以了
[/Quote]

参照这个吧。
汤姆克鲁斯 2012-09-11
  • 打赏
  • 举报
回复
如果只是判断是否有变更
写一个job 去读取sys.dm_db_index_usage_stats 看last_user_update
这样最好,比TR 、CDC 、CT 开销都要小的多。
使用什么方法主要取决于你的具体业务需求了

SELECT OBJECT_ID(OBJECT_ID),last_user_update FROM 
sys.dm_db_index_usage_stats WHERE index_id IN(0,1)
AND OBJECT_ID=OBJECT_ID('tb')
發糞塗牆 2012-09-11
  • 打赏
  • 举报
回复
如果用2008 的话,可以直接启用CDC,获取表的增、删、改的记录。
如果是其他版本,就在表中做update 和 insert的触发器(08之后可以使用merge来把两个操作合在一起),并把结果插到一个记录表,你到时直接去查就可以了
SQL77 2012-09-11
  • 打赏
  • 举报
回复
那直接用触发器来吧。
  • 打赏
  • 举报
回复
判断是否修改或新增记录应用触发器来做,不是存储
發糞塗牆 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

要复制的话也不用在这里了,库A 和库B的结构不一样,我只要部分数据,通过脚本将库A的数据导入到库B中,而且库A改变了,我这边也要相应改变,而且库A我是不能修改它的,我只能访问
[/Quote]那触发器是比较理想的解决方法,不过如果是跨服务器的库,还要开启连接服务器的设置。
caipuhappy 2012-09-11
  • 打赏
  • 举报
回复
要复制的话也不用在这里了,库A 和库B的结构不一样,我只要部分数据,通过脚本将库A的数据导入到库B中,而且库A改变了,我这边也要相应改变,而且库A我是不能修改它的,我只能访问

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧