MulaiMulai sekarang secara gratis

Memeriksa @@TRANCOUNT dalam konstruksi TRY...CATCH

Pemilik akun 10 memenangkan undian dan akan menerima $200. Anda menyiapkan skrip sederhana untuk menambahkan $200 tersebut ke current_balance akun 10. Anda merasa sudah menulis semuanya dengan benar, tetapi Anda memilih untuk memeriksa kode Anda.

Ternyata, Anda membuat kesalahan sepele saat menambahkan uang: SET current_balance = 'current_balance' + 200. Anda menulis 'current_balance' sebagai string, yang memicu galat.

Skrip yang Anda buat harus melakukan rollback setiap perubahan jika terjadi galat, dengan memeriksa apakah ada transaksi yang sedang terbuka. Jika semuanya berjalan dengan benar, transaksi harus di-commit, juga dengan memeriksa apakah ada transaksi yang sedang terbuka.

Latihan ini adalah bagian dari kursus

Transaksi dan Penanganan Kesalahan di SQL Server

Lihat Kursus

Petunjuk latihan

  • Mulai transaksi.
  • Perbaiki kesalahan dalam operasi tersebut.
  • Di dalam blok TRY, periksa apakah ada transaksi dan lakukan commit.
  • Di dalam blok CATCH, periksa apakah ada transaksi dan lakukan rollback.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

BEGIN TRY
	-- Begin the transaction
	___ ___;
    	-- Correct the mistake
		UPDATE accounts SET current_balance = 'current_balance' + 200
			WHERE account_id = 10;
    	-- Check if there is a transaction
		IF ___ > 0     
    		-- Commit the transaction
			___ ___;
     
	SELECT * FROM accounts
    	WHERE account_id = 10;      
END TRY
BEGIN CATCH  
    SELECT 'Rolling back the transaction'; 
    -- Check if there is a transaction
    IF ___ > 0   	
    	-- Rollback the transaction
        ___ ___;
END CATCH
Edit dan Jalankan Kode