SET XACT_ABORT ON
weist SQL Server an, die gesamte Transaktion rückgängig zu machen und den Batch abzubrechen, wenn ein Laufzeitfehler auftritt. Es schützt Sie in Fällen wie einem Befehls-Timeout, das in der Clientanwendung statt in SQL Server selbst auftritt (was nicht durch die Standardeinstellung XACT_ABORT OFF
abgedeckt ist). Einstellung.)
Da ein Abfrage-Timeout die Transaktion offen lässt, SET XACT_ABORT ON
wird in allen gespeicherten Prozeduren mit expliziten Transaktionen empfohlen (es sei denn, Sie haben einen bestimmten Grund, etwas anderes zu tun), da die Folgen einer Arbeit an einer Verbindung mit einer offenen Transaktion durch eine Anwendung katastrophal sind.
Einen wirklich großartigen Überblick gibt es im Blog von Dan Guzman,