SET XACT_ABORT ON
指示SQL Server回滚整个事务,并在出现运行时错误时中止批处理.它会在客户端应用程序上而不是SQL Server本身(默认XACT_ABORT OFF
设置不包括该设置)发生命令超时的情况下覆盖您
由于查询超时将使事务保持打开状态,因此建议在所有具有显式事务的存储过程中使用SET XACT_ABORT ON
(除非您有特定的理由这样做),因为应用程序在与打开的事务的连接上执行工作的后果是灾难性的.
有一个关于Dan Guzman's Blog的非常好的概述,