日期:2014-05-17  浏览次数:20570 次

同一张表上的insert、update触发器能合并吗,如果可以,怎么合并?
如题

create trigger tr_insert_BOMMC
on BOMMC
after insert
as
set xact_abort on
insert BF_DATA..BOMMC(
MC001,
MC002,
MC003,
MC004
)
select * from inserted
go 


create trigger tr_update_BOMMD
on BOMMD
after update
as
update BF_DATA..BOMMD
set
MD001=A.MD001,
MD002=A.MD002,
MD003=A.MD003,
MD004=A.MD004
from BF_DATA..BOMMD as B,
inserted as A where B.MD001=A.MD001 and B.MD002=A.MD002

------解决方案--------------------
好像一开始是,插入的时候,给自动 补全其他的字段,这个是可以的,通过update来实现。

但是如果这个时候,更新了相关的字段,那么也必须要通过这个触发器,来自动的更新数据对吧,
这样会导致问题,这个update时,不能通过 在update触发器中,执行update语句来实现,因为这个引起递归触发器。

也就是update触发器中的update语句,又触发了update触发器,然后就是一个死循环,最后会报错。