XACT_ABORT的范围是什么?

时间:2013-09-04 15:59:06

标签: sql-server-2005 scope xact-abort

SQL Server 2005中SET XACT_ABORT语句的范围是什么? ie:begin-end块,过程或触发器,连接,数据库,服务器?

2 个答案:

答案 0 :(得分:7)

Technet Using Options in SQL Server暗示所有SET选项的范围都是连接或批处理级别。

MSDN SET Statements添加了详细信息:

  

如果在存储过程或触发器中运行SET语句,则为该值   从中返回控件后,将恢复SET选项   存储过程或触发器。此外,如果指定了SET语句   使用sp_executesql或运行的动态SQL字符串   EXECUTE,控制后恢复SET选项的值   从动态SQL字符串中指定的批处理返回。

默认情况下,还可以通过user options为所有用户启用XACT_ABORT:

EXEC sp_configure 'user options', 16384
RECONFIGURE WITH OVERRIDE

也可以仅通过自定义logon trigger对所选用户强制执行。

另请参阅XACT_ABORT behaviour的重要细节。

答案 1 :(得分:-4)

我认为,BOL的这篇文章回答了你的问题:SET (Transact-SQL)