首页 文章

为什么AFTER UPDATE触发器仅在ONCE被触发,即使在ROW上有3个更新也很难?

提问于
浏览
0

我在db表Foo上有一个AFTER UPDATE触发器 . 只要在Foo上发生UPDATE,它就会将审计记录插入到Audit表中 .

有3个单独的服务正在运行,有时它们会更新相同的Foo记录 - 但不同的字段 .

问题是当SAME行上有3个UPDATES时 - 几乎同时发生这种情况 - 我可以看到只触发一个AFTER UPDATE触发器 . 我只看到一个审计记录,我期待3 .

任何建议为什么会发生这种情况?

1 回答

  • 0

    我能想到这些原因:

    • 仅当触发SQL语句中指定的所有操作都已成功执行时,才会触发AFTER UPDATE触发器 . 在此触发器触发之前,所有参考级联操作和约束检查也必须成功 . [Quote]如果没有您注意到,其他更新可能会失败 .

    • 如果UPDATE是长时间运行的事务的一部分,则其他更新可能正在等待第一个提交 .

    • 你的触发器有一个错误 .

    无论如何,您是否已经了解了SQL Server提供的审计功能?

相关问题