Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Was ist der Vorteil der Verwendung von SET XACT_ABORT ON in einer gespeicherten Prozedur?

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,