Pamiętaj, że istnieją błędy, których TRY-CATCH nie przechwyci z lub bez XACT_ABORT
.
Jednak SET XACT_ABORT ON
nie wpływa na wyłapywanie błędów. Gwarantuje jednak, że każda transakcja zostanie wycofana / stracona. Gdy "OFF", nadal masz wybór zatwierdzenia lub wycofania (z zastrzeżeniem xact_state). To jest główna zmiana zachowania SQL 2005 dla XACT_ABORT
To, co również robi, to usuwanie blokad itp., jeśli nastąpi przekroczenie limitu czasu polecenia klienta, a klient wyśle dyrektywę „przerwij”. Bez SET XACT_ABORT
, blokady mogą pozostać, jeśli połączenie pozostanie otwarte. Mój kolega (MVP) i ja dokładnie przetestowaliśmy to na początku roku.