XACT_ABORT的范围是什么?

Gui*_*rez 13 sql-server scope sql-server-2005 sqltransaction xact-abort

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

Vad*_*zim 8

Technet 在SQL Server中使用选项提示所有SET选项都在连接或批处理级别作用域.

MSDN SET语句添加了详细信息:

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

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

EXEC sp_configure 'user options', 16384
RECONFIGURE WITH OVERRIDE
Run Code Online (Sandbox Code Playgroud)

它也可以仅通过自定义登录触发器对所选用户强制执行.

另请参阅有关XACT_ABORT行为的重要详细信息.