【问题标题】:What is the difference between SET xact_abort ON and try/catch block with Transaction handling in sqlserver 2005?SET xact_abort ON 和 try/catch 块与 sqlserver 2005 中的事务处理有什么区别?
【发布时间】:2009-08-11 06:34:18
【问题描述】:

我需要改进项目中的一些现有存储过程,以便更好地处理事务。我知道我可以在我的过程中使用 SET XACT_Abort ON 语句,以便在出现错误时自动回滚事务。我还可以使用 Try/Catch 块进行错误处理,并在出现错误时回滚 Catch 块中的事务?我的问题是这两者之间的主要区别是什么,为什么我应该使用一个而不是另一个?在这两者之间做出决定时,我应该使用任何指导方针吗?

【问题讨论】:

标签: sql-server sql-server-2005 transactions


【解决方案1】:

Try/Catch 块是 SQL Server 2005 中的新功能,它允许您处理错误,而不仅仅是让它们回滚 - Try/Catch 块将您限制为单个批处理,但当然这在存储过程中是没有意义的。如果您的程序必须与以前版本的 SQL Server 保持兼容,如果有帮助,您可以考虑 XACT_ABORT,但我认为 Try/Catch 是前进的道路。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 2013-11-09
    相关资源
    最近更新 更多