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

Eu realmente preciso usar SET XACT_ABORT ON?


Lembre-se de que existem erros que o TRY-CATCH não captura com ou sem XACT_ABORT .

No entanto, SET XACT_ABORT ON não afeta a captura de erros. Ele garante que qualquer transação seja revertida / condenada. Quando "OFF", você ainda tem a opção de commit ou rollback (sujeito a xact_state). Esta é a principal mudança de comportamento do SQL 2005 para XACT_ABORT

O que ele também faz é remover bloqueios, etc., se o tempo limite do comando do cliente entrar em ação e o cliente enviar a diretiva "abort". Sem SET XACT_ABORT , os bloqueios podem permanecer se a conexão permanecer aberta. Meu colega (um MVP) e eu testamos isso completamente no início do ano.