Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Devo davvero usare SET XACT_ABORT ON?

Ricorda che ci sono errori che TRY-CATCH non catturerà con o senza XACT_ABORT .

Tuttavia, SET XACT_ABORT ON non influisce sulla cattura degli errori. Tuttavia, garantisce che qualsiasi transazione venga annullata / condannata. Quando è "OFF", hai ancora la possibilità di scegliere tra commit o rollback (soggetto a xact_state). Questo è il principale cambiamento di comportamento per SQL 2005 per XACT_ABORT

Quello che fa anche è rimuovere i blocchi ecc. Se il timeout del comando del client si attiva e il client invia la direttiva "abort". Senza SET XACT_ABORT , i blocchi possono rimanere se la connessione rimane aperta. Io e il mio collega (un MVP) lo abbiamo testato a fondo all'inizio dell'anno.