Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Ai-je vraiment besoin d'utiliser SET XACT_ABORT ON ?

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.