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

Quel est l'avantage d'utiliser SET XACT_ABORT ON dans une procédure stockée ?

SET XACT_ABORT ON demande à SQL Server d'annuler l'intégralité de la transaction et d'abandonner le lot lorsqu'une erreur d'exécution se produit. Il vous couvre dans des cas comme un délai d'attente de commande se produisant sur l'application cliente plutôt que dans SQL Server lui-même (qui n'est pas couvert par le défaut XACT_ABORT OFF réglage.)

Puisqu'un délai d'attente de requête laissera la transaction ouverte, SET XACT_ABORT ON est recommandé dans toutes les procédures stockées avec des transactions explicites (sauf si vous avez une raison particulière de faire autrement) car les conséquences d'une application effectuant un travail sur une connexion avec une transaction ouverte sont désastreuses.

Il y a un très bon aperçu sur le blog de Dan Guzman,