Bolehkah kita menggunakan transaksi dalam prosedur tersimpan?
Bolehkah kita menggunakan transaksi dalam prosedur tersimpan?

Video: Bolehkah kita menggunakan transaksi dalam prosedur tersimpan?

Video: Bolehkah kita menggunakan transaksi dalam prosedur tersimpan?
Video: MySQL: Trigger dan Stored Procedure 2024, November
Anonim

Jika kita mempunyai lebih daripada satu pernyataan SQL dalam pelaksanaan dalam prosedur tersimpan dan kita ingin membatalkan sebarang perubahan yang dilakukan oleh mana-mana satu pernyataan SQL sekiranya ralat berlaku kerana salah satu pernyataan SQL, kita boleh menggunakan transaksi dalam prosedur tersimpan.

Cuma, adakah prosedur tersimpan berjalan dalam transaksi?

Bersarang prosedur tersimpan adalah dilaksanakan di dalam transaksi konteks yang paling luar prosedur tersimpan . Ini ialah tetapan lalai. Menyediakan tingkah laku lalai yang diterangkan di atas. Iaitu, semua pernyataan SQL dalam a prosedur tersimpan dilaksanakan sebagai bujang transaksi blok.

Selain di atas, bolehkah kita menggunakan komit dalam prosedur? Secara umum, prosedur tidak patut komited . Jika awak komited di dalam yang disimpan prosedur , anda mengehadkan kebolehgunaannya kerana pemanggil yang mahukan perubahan prosedur menjadikan untuk menjadi sebahagian daripada transaksi yang lebih besar tidak boleh hanya memanggil prosedur secara langsung.

Mengenai ini, bolehkah kita menggunakan transaksi dalam fungsi SQL?

1 Jawapan. sebab tu urus niaga adalah tidak perlu untuk sql -pelayan fungsi . Walau bagaimanapun, anda boleh ubah transaksi tahap pengasingan, sebagai contoh, anda boleh guna Petunjuk NOLOCK untuk mencapai "baca tanpa komitmen" transaksi tahap pengasingan dan membaca data yang tidak terikat daripada yang lain urus niaga.

Bolehkah kita menggunakan transaksi bersarang dalam SQL jika ya, jadi bagaimana?

SQL Pelayan tidak begitu menyokong transaksi bersarang . Hanya ada satu transaksi pada satu masa. Yang ini transaksi mempunyai asas transaksi bersarang kaunter, @@TRANCOUNT. Setiap berturut-turut bermula transaksi kenaikan yang balas dengan satu, setiap komit transaksi mengurangkannya dengan satu.

Disyorkan: