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
.