Ingat bahwa ada kesalahan yang TRY-CATCH tidak akan tangkap dengan atau tanpa XACT_ABORT
.
Namun, SET XACT_ABORT ON
tidak mempengaruhi perangkap kesalahan. Itu menjamin bahwa setiap transaksi dibatalkan/dikutuk. Ketika "OFF", maka Anda masih memiliki pilihan komit atau kembalikan (tunduk pada xact_state). Ini adalah perubahan utama perilaku untuk SQL 2005 untuk XACT_ABORT
Apa yang juga dilakukannya adalah menghapus kunci dll jika batas waktu perintah klien masuk dan klien mengirimkan arahan "batalkan". Tanpa SET XACT_ABORT
, kunci dapat tetap ada jika koneksi tetap terbuka. Kolega saya (seorang MVP) dan saya menguji ini secara menyeluruh di awal tahun.