MulaiMulai sekarang secara gratis

Membatalkan transaksi jika terjadi kesalahan

Pada hari pertama kerja, Anda mendapat tugas menyiapkan transaksi yang mencatat saat uang ditransfer di bank Anda.

Anda ingin menyiapkan skrip sederhana yang mentransfer $100 dari account_id = 1 ke account_id = 5. Setelah itu, skrip mendaftarkan perpindahan tersebut ke tabel transactions. Anda merasa sudah menulis semuanya dengan benar, tetapi sebagai pekerja yang berhati-hati, Anda lebih memilih untuk memeriksa semuanya!

Faktanya, Anda memang membuat kesalahan. Alih-alih menyisipkan transaksi baru untuk akun 5, Anda melakukannya untuk akun 500, yang tidak ada.

Untuk mencegah kesalahan di masa mendatang, skrip yang Anda buat harus melakukan rollback pada setiap perubahan jika terjadi kesalahan. Jika semuanya berjalan dengan benar, transaksi harus di-commit.

Latihan ini adalah bagian dari kursus

Transaksi dan Penanganan Kesalahan di SQL Server

Lihat Kursus

Petunjuk latihan

  • Mulai transaksi.
  • Perbaiki kesalahan dalam operasi.
  • Commit transaksi jika tidak ada kesalahan.
  • Di dalam blok CATCH, lakukan rollback transaksi.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

BEGIN TRY  
	-- Begin the transaction
	BEGIN ___;
		UPDATE accounts SET current_balance = current_balance - 100 WHERE account_id = 1;
		INSERT INTO transactions VALUES (1, -100, GETDATE());
        
		UPDATE accounts SET current_balance = current_balance + 100 WHERE account_id = 5;
        -- Correct it
		INSERT INTO transactions VALUES (500, 100, GETDATE());
    -- Commit the transaction
	___ TRAN;    
END TRY
BEGIN CATCH  
	SELECT 'Rolling back the transaction';
    -- Rollback the transaction
	___ ___;
END CATCH
Edit dan Jalankan Kode