Gelagat Transaksi Pelayan SQL dan Pengendalian Ralat
Memahami cara SQL Server mengurus urus niaga, terutamanya apabila ralat berlaku, adalah penting untuk integriti pangkalan data.
Senario:
Pertimbangkan perintah SQL yang kompleks dalam SQL Server 2005, yang mengandungi berbilang INSERT
pernyataan dalam blok transaksi. Jika satu INSERT
operasi gagal, apakah yang berlaku kepada keseluruhan transaksi?
Gelagat Lalai:
Secara lalai, SQL Server tidak secara automatik melancarkan semula transaksi apabila menghadapi ralat. Urus niaga kekal terbuka, memerlukan arahan ROLLBACK
manual untuk membuat asal sebarang perubahan.
Memastikan Rollback Automatik:
Untuk menjamin pemulangan automatik pada sebarang ralat dalam transaksi, gunakan tetapan berikut sebelum memulakan transaksi:
<code class="language-sql">SET XACT_ABORT ON</code>
Dengan XACT_ABORT
didayakan, satu kegagalan dalam urus niaga akan mencetuskan rollback automatik, mengekalkan konsistensi data dan menghalang kemas kini separa.
Pertimbangan Penting:
SET XACT_ABORT ON
memastikan sama ada kejayaan transaksi yang lengkap atau pemulangan semula sepenuhnya.SET XACT_ABORT OFF
) memerlukan pernyataan ROLLBACK
yang jelas untuk mengendalikan transaksi yang gagal.Atas ialah kandungan terperinci Adakah Pelayan SQL Melancarkan Transaksi Secara Automatik atas Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!