【发布时间】:2013-09-04 15:59:06
【问题描述】:
SQL Server 2005 中 SET XACT_ABORT 语句的范围是什么?即:开始-结束块、过程或触发器、连接、数据库、服务器?
【问题讨论】:
标签: sql-server sql-server-2005 scope sqltransaction xact-abort
SQL Server 2005 中 SET XACT_ABORT 语句的范围是什么?即:开始-结束块、过程或触发器、连接、数据库、服务器?
【问题讨论】:
标签: sql-server sql-server-2005 scope sqltransaction xact-abort
Technet Using Options in SQL Server 暗示所有 SET 选项的范围都在连接或批处理级别。
MSDN SET Statements 添加详细信息:
如果在存储过程或触发器中运行 SET 语句,则值 SET 选项的控制权从返回后恢复 存储过程或触发器。此外,如果在中指定了 SET 语句 使用 sp_executesql 或 EXECUTE,控制后SET选项的值恢复 从动态 SQL 字符串中指定的批处理返回。
也可以通过user options为所有用户默认启用XACT_ABORT:
EXEC sp_configure 'user options', 16384
RECONFIGURE WITH OVERRIDE
也可以仅通过自定义logon trigger 对选定用户强制执行。
另请参阅XACT_ABORT behaviour 上的重要详细信息。
【讨论】: