【发布时间】:2016-11-03 19:33:28
【问题描述】:
我有一个基于触发器的自动化工作流程。
在我的一张表上有一个“更新后”触发器,它有一个状态字段,一旦该字段从“正在处理”更新为“已完成”,触发器必须触发。在正常情况下,据我了解,触发器应在状态更新为“已完成”后触发。
但在我的情况下,触发器触发并导致潜在的死锁或错误,状态仍为“处理中”。
按照 MSDN “AFTER”指定只有在触发 SQL 语句中指定的所有操作都已成功执行时才触发触发器。
只有在更新提交到“已完成”状态后,我可以做些什么来触发触发器?
或者这是否意味着“更新后”只是作为事务开始的东西,然后一旦触发器成功触发,状态就被提交了?
【问题讨论】:
-
必须有其他东西在更新该表。您是否将插入和删除的值存储在某处?这将指向您提前触发触发器的原因。 -- 此外,您可以检查对已完成状态的更改,并基于此中止或继续触发器。
-
“更新后”还是在提交之前。
-
所以更新后触发器不会像 MSDN 中提到的那样工作?
标签: sql sql-server triggers