使用SET XACT_ABORT ON时对显式事务语句的要求?

时间:2011-04-20 10:03:13

标签: sql sql-server tsql sql-server-2008 stored-procedures

如果我在SET XACT_ABORT ON语句中使用CREATE PROCEDURE,我是否必须将所有语句包装在显式事务语句中:BEGIN TRANSACTIONCOMMIT

或者SET XACT_ABORT ON在执行错误的情况下是否终止过程执行而不考虑这些?

1 个答案:

答案 0 :(得分:1)

XACT_ABORT通常用于某人在存储过程中对事务进行编码时,可能他们应该将此责任留给调用模块。

当出现问题时,交易可以保持打开状态,而来电者无视该事务。将XACT_ABORT设置为ON意味着在发生故障时事务不会保持打开状态。

使用事务时,您应该始终寻求处理SQL中的每个可能的错误并相应地处理事务。更好的是,完全从SQL中剥离事务,并依赖于调用模块。