15

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

4

1 回答 1

12

Technet在 SQL Server 中使用选项提示所有 SET 选项的范围都在连接或批处理级别。

MSDN SET Statements添加详细信息:

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

也可以通过用户选项默认为所有用户启用 XACT_ABORT :

EXEC sp_configure 'user options', 16384
RECONFIGURE WITH OVERRIDE

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

另请参阅XACT_ABORT 行为的重要细节。

于 2017-02-23T00:04:42.723 回答