Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Qual é o benefício de usar SET XACT_ABORT ON em um procedimento armazenado?


SET XACT_ABORT ON instrui o SQL Server a reverter toda a transação e anular o lote quando ocorrer um erro em tempo de execução. Ele cobre você em casos como um tempo limite de comando que ocorre no aplicativo cliente em vez de dentro do próprio SQL Server (que não é coberto pelo padrão XACT_ABORT OFF contexto.)

Como um tempo limite de consulta deixará a transação aberta, SET XACT_ABORT ON é recomendado em todos os procedimentos armazenados com transações explícitas (a menos que você tenha um motivo específico para fazer o contrário), pois as consequências de um aplicativo executando trabalho em uma conexão com uma transação aberta são desastrosas.

Há uma ótima visão geral no blog de Dan Guzman,