Husk, at der er fejl, som TRY-CATCH ikke fanger med eller uden XACT_ABORT
.
Dog SET XACT_ABORT ON
påvirker ikke indfangning af fejl. Det garanterer dog, at enhver transaktion er rullet tilbage / dødsdømt. Når "OFF", så har du stadig valget mellem commit eller rollback (med forbehold for xact_state). Dette er den vigtigste adfærdsændring for SQL 2005 for XACT_ABORT
Hvad den også gør, er at fjerne låse osv., hvis klientkommandoens timeout starter, og klienten sender "abort"-direktivet. Uden SET XACT_ABORT
, kan låse forblive, hvis forbindelsen forbliver åben. Min kollega (en MVP) og jeg testede dette grundigt i starten af året.