Selasa, 22 Maret 2016

Penggunaan Begin, Rollback dan Commit Tran

Pada kesempatan kali ini, saya ingin berbagi sedikit tentang cara menggunaan perintah BEGIN, ROLLBACK dan COMMIT TRAN pada SQL Server. Perintah - perintah ini erat kaitannya bersamaan dengan perintah DML (Data Manipulation Language) seperti DELETE, UPDATE, INSERT dan lain - lain. Terkadang saat kita melakukan transaksi baik itu delete, update ataupun insert pada data di suatu table, bisa saja terjadi kesalahan transaksi misal seperti salah melakukan delete atau update pada suatu data. Atau kita terlanjur melakukan insert data yang padahal seharusnya data itu tidak dilakukan insert. Karena itulah kita sebenarnya dalam melakukan transaksi perlu menggunakan perintah seperti BEGIN, ROLLBACK, dan COMMIT TRAN.

Arti dari kata BEGIN TRAN artinya adalah suatu tanda awal bahwa kita akan melakukan transaksi baik itu delete, update ataupun insert. ROLLBACK TRAN adalah jika suatu transaksi telah terjadi, maka dengan perintah tersebut kita bisa mengembalikan data dimana transaksi tersebut sebelum dijalankan. Kemudian untuk COMMIT TRAN adalah lawan dari ROLLBACK TRAN, kita akan mengunci atau membuat permanen data dari hasil transaksi yang telah dilakukan, sehingga kita tidak bisa mengembalikan data sesaat sebelum dilakukannya transaksi.

Untuk lebih jelasnya saya akan mencoba memberikan contoh dalam penggunaan BEGIN TRAN - ROLLBACK TRAN dan BEGIN TRAN - COMMIT TRAN berikut di bawah ini

Gambar Contoh BEGIN TRAN - ROLLBACK TRAN
Pada script di atas menjelaskan bahwa terdapat transaksi delete data dari table Category dengan ID = 16. Ketika dilakukan select sebelum dan sesudah perintah delete, terlihat data untuk ID = 16 tidak ada setelah dilakukan delete. Namun dilakukannya select kembali setelah perintah ROLLBACK TRAN maka data untuk ID = 16 kembali muncul. Artinya adalah setelah dilakukannya Rollback, data dikembalikan kepada saat sebelum transaksi itu dijalankan.

Gambar Contoh BEGIN TRAN - COMMIT TRAN
Pada script di atas menjelaskan bahwa terdapat transaksi delete data dari table Category dengan ID = 16. Ketika dilakukan select sebelum dan sesudah perintah delete, terlihat data untuk ID = 16 tidak ada setelah dilakukan delete. Namun dilakukannya select kembali setelah perintah COMMIT TRAN maka data untuk ID = 16 juga tidak muncul. Artinya adalah setelah dilakukannya Commit, data secara permanen telah berubah setelah transaksi itu dijalankan.

Sekian dan semoga bermanfaat. Terimakasih

2 komentar:

  1. Dear Satrio,

    Nice Share untuk menanggulangi misalkan ada yang lupa masang where condition saat update atau delete.

    Nice Job.

    BalasHapus
  2. klo delete belum pake begin tran..kemudian kembalikan baru pake bisa ngk?

    BalasHapus