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

Como definir SET XACT_ABORT ON em uma transação do SQL Server?


Você normalmente define xact_abort como parte do corpo do procedimento armazenado:
CREATE PROCEDURE MyProc
AS
SET XACT_ABORT ON
BEGIN TRAN  
....

Existem duas configurações "especiais" que são lembradas da sessão que criou o procedimento. Explicação do MSDN:

Portanto, quando você cria um procedimento armazenado, o SQL Server copia a opção QUOTED_IDENTIFIER da conexão para a definição do procedimento. O objetivo é que outra pessoa com uma configuração QUOTED_IDENTIFIER diferente ainda obtenha o comportamento pretendido pelo autor do procedimento.

O mesmo não é verdade para XACT_ABORT .