在存储过程中使用“SET XACT_ABORT ON”有什么好处?

问题描述

SET XACT_ABORT ON指示 sql Server 回滚整个事务并在发生运行时错误时中止批处理。它涵盖了客户端应用程序而不是 sql Server 本身发生命令超时等情况(XACT_ABORT OFF设置未涵盖)。

由于查询超时将使事务保持打开状态,SET XACT_ABORT ON因此建议在所有具有显式事务的存储过程中使用(除非您有特定的理由不这样做),因为应用程序在与打开事务的连接上执行工作的后果是灾难性的。

Dan Guzman 的博客上有一个非常棒的概述,

解决方法

SET XACT_ABORT ON 在存储过程中使用有什么好处?