Rappelez-vous qu'il y a des erreurs que TRY-CATCH ne capturera pas avec ou sans XACT_ABORT
.
Cependant, SET XACT_ABORT ON
n'affecte pas le piégeage des erreurs. Cela garantit cependant que toute transaction est annulée / condamnée. Lorsque "OFF", vous avez toujours le choix entre commit ou rollback (sous réserve de xact_state). C'est le principal changement de comportement pour SQL 2005 pour XACT_ABORT
Ce qu'il fait également est de supprimer les verrous, etc. si le délai d'expiration de la commande client entre en jeu et que le client envoie la directive "abort". Sans SET XACT_ABORT
, des verrous peuvent subsister si la connexion reste ouverte. Mon collègue (un MVP) et moi l'avons testé minutieusement au début de l'année.