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

Sql server MSSQL:在触发器执行期间发生错误时会发生什么情况?,sql-server,transactions,triggers,atomic,Sql Server,Transactions,Triggers,Atomic,关于MS SQL Server的更新和插入触发器,有没有办法使其原子化?换句话说,如果在触发过程中发生错误,是否可以自动回滚原始插入或更新?MSDN中有一篇关于触发器和事务的好文章,位于此处: 基本上,您希望使用事务使操作原子化。After触发器自动成为表上insert/update/delete atomic DML语句的一部分 只需在触发器中发出ROLLBACK TRAN,即可回滚触发器和原始I/U/D语句中的所有工作。最外层的tran也会回滚(如果有) 重要 SQL 2000及更早版本的

关于MS SQL Server的更新和插入触发器,有没有办法使其原子化?换句话说,如果在触发过程中发生错误,是否可以自动回滚原始插入或更新?

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


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

After触发器自动成为表上insert/update/delete atomic DML语句的一部分

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

重要

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

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

看。触发和尝试/捕获的交互作用是