代码之家  ›  专栏  ›  技术社区  ›  recursive

MSSQL:在触发器执行期间发生错误时会发生什么情况?

  •  2
  • recursive  · 技术社区  · 15 年前

    2 回复  |  直到 15 年前
        1
  •  4
  •   gbn    15 年前

    只需在触发器中发出ROLLBACK TRAN,即可回滚触发器和原始I/U/D语句中的所有工作。最外层的tran也会回滚(如果有)。

    SQL 2000及更早版本的触发器中的回滚将中止批处理。有问题的I/U/D之后不会运行任何代码。 See Erland great article another

    对于带有TRY/CATCH的SQL2005,执行将转到CATCH块,批处理(也称为存储过程等)将正常退出。

    Rollbacks and Commits in Stored Procedures and Triggers . 触发和尝试/捕获的交互作用是 here

        2
  •  0
  •   casperOne    15 年前

    MSDN中有一篇关于触发器和事务的好文章,位于以下位置:

    http://msdn.microsoft.com/en-us/magazine/cc164032.aspx

    基本上,您希望使用事务使操作原子化。