有触发器
CREATE OR ALTER TRIGGER AU_CONTRACT_EXTRA FOR CONTRACT_EXTRA
ACTIVE AFTER UPDATE POSITION 0
AS
begin
if (((new.EXECUTE_BEGIN <> old.EXECUTE_BEGIN)
or (old.EXECUTE_BEGIN is null))
or ((new.EXECUTE_END <> old.EXECUTE_END)
or (old.EXECUTE_END is null))) then
execute procedure SP_PROPOSAL_ADD_TO_CONTRACT(-1, old.CONTRACT_ID, 2);
end
其中,当更新两个字段“ EXECUTE_BEGIN ”和“ EXECUTE_END ”时,调用一个过程,该过程(根据自己的条件)更新此表中的相同 2 个字段,仅在其他行中。当您更新这两个字段中的记录时,该表中的特定记录也会更新。
但是这些行干扰了我
(old.EXECUTE_BEGIN is null)-(old.EXECUTE_END is null)事实是,在更新此表中的其他字段时,还会调用过程“ SP_PROPOSAL_ADD_TO_CONTRACT ”并且错误:
同一请求的并发执行次数过多。
但是如果触发器中没有这两行,如果字段为“null”,则不会调用“SP_PROPOSAL_ADD_TO_CONTRACT”过程
或者编写一个触发器来更新您自己的表的字段是一个坏主意?
如何进行?
如果我理解正确,条件应该是:
或者如果你有 FB 2.5 及以上版本,那么