如何以某种方式编写该过程,以便每当其中的任何语句出错时我都可以ROLLBACK所有INSERT,UPDATE和DELETE语句.
请注意,我的程序可能会也可能不会按顺序列出语句.换句话说,我有一个INSERT语句,然后是一些IF逻辑,然后是一个select语句,然后是另一个INSERT,然后是UPDATE,然后是逻辑然后是DELETE语句等.
我只想在任何语句发生错误时ROLLBACK所有INSERT,UPDATE和DELETE语句.我找到了这段代码http://msdn.microsoft.com/en-us/library/ms181299.aspx 和 http://en.allexperts.com/q/MS-SQL-Server-1801/Rollback-SP.htm
但他们没有回答我的问题.
如果事务使用XACT_ABORT选项运行,则会自动发生。
set xact_abort on
begin tran
/*Your code*/
commit
Run Code Online (Sandbox Code Playgroud)
这是一个非常有趣的问题,讨论使用此方法与结构化错误处理。
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |