比如有一个表,需要记录每条记录被最后修改的时间id msg updateTime
1 aaa 2011.09.23比如我把这条记录改任何一个字段(可能字段很多,但只列出这么几个),就修改updateTime字段的值。
调用触发器的话,触发器会再次修改updateTime字段,也就是修改了这个表,就再次调用update的触发器,这样不就循环了?这个触发器怎么写比较好
1 aaa 2011.09.23比如我把这条记录改任何一个字段(可能字段很多,但只列出这么几个),就修改updateTime字段的值。
调用触发器的话,触发器会再次修改updateTime字段,也就是修改了这个表,就再次调用update的触发器,这样不就循环了?这个触发器怎么写比较好
每次更新,更新跟踪表
2:就是采用3楼的方法,更新是判断一下更新的字段,如只更新改updatetime,则return
不能更新逻辑表 INSERTED 和 DELETED。
在更新触发器加上如下一段
if update(updatetime)and exists(select 1 from inserted,deleted
where inserted.id = deleted.id
and inserted.updatetime <> deleted.updatetime)
begin
return
end