事务和异常
触发器始终作为正在执行触发语句的同一事务的一部分执行。如果触发器代码块中未发生异常,则当且仅当提交包含触发语句的事务时,才会提交触发器中任何 DML 命令的效果。因此,如果事务回滚,则触发器中任何 DML 命令的效果也都将回滚。
如果在触发器代码块中确实发生异常,但该异常在异常部分进行了捕获和处理,则触发器中任何 DML 命令的效果仍然会回滚。但是,触发语句本身不会回滚,除非应用程序强制回滚封装事务。
如果在触发器代码块中发生的异常未处理,则封装触发器的事务将中止并回滚。因此,触发器中任何 DML 命令的效果以及触发语句本身都将回滚。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论