sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cuál es el beneficio de usar SET XACT_ABORT ON en un procedimiento almacenado?

SET XACT_ABORT ON indica a SQL Server que revierta toda la transacción y anule el lote cuando se produzca un error en tiempo de ejecución. Lo cubre en casos como un tiempo de espera de comando que ocurre en la aplicación cliente en lugar de dentro de SQL Server (que no está cubierto por XACT_ABORT OFF predeterminado). ajuste.)

Dado que el tiempo de espera de una consulta dejará abierta la transacción, SET XACT_ABORT ON se recomienda en todos los procedimientos almacenados con transacciones explícitas (a menos que tenga una razón específica para hacerlo de otra manera), ya que las consecuencias de que una aplicación realice un trabajo en una conexión con una transacción abierta son desastrosas.

Hay una muy buena descripción general en el blog de Dan Guzman,