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,