SQL Server"更新后#34;更新前触发触发

时间:2016-07-01 11:40:38

标签: sql sql-server triggers

我有一个基于触发器工作的自动化工作流程。

有一个"更新后"触发我的一个表,它有一个状态字段,一旦该字段从" Processing"更新到"完成"触发器必须触发。在正常情况下,根据我的理解,触发器应在状态更新为"已完成"后触发。

但在我的情况下,触发器会触发并导致潜在的死锁或错误,并且状态仍然是“#34; Processing"。

根据MSDN进行AS " AFTER"指定仅在触发SQL语句中指定的所有操作都已成功执行时才触发触发器。

只有在更新提交到"已完成"之后,我才能执行任何操作来触发触发器状态?

或者它是否意味着"更新后"只是一个将作为一个事务开始的东西,然后一旦触发成功触发状态就会被提交?

1 个答案:

答案 0 :(得分:0)

状态更新为“已完成”后,“AFTER UPDATE”触发器将触发,但数据尚未提交。它会等待触发器完成,如果触发器发生错误,它将回滚更新的数据。