Memilih kapan melakukan commit atau rollback transaksi
Bank tempat Anda bekerja memutuskan untuk memberikan $100 kepada rekening yang saldonya kurang dari $5.000. Namun, direktur bank hanya ingin memberikan uang itu jika jumlah rekening dengan saldo kurang dari $5.000 tidak lebih dari 200.
Anda menyiapkan skrip untuk memberikan $100 tersebut, dan dari beberapa cara yang mungkin, Anda memilih untuk membuka transaksi lalu memperbarui setiap rekening dengan saldo kurang dari $5.000. Setelah itu, Anda memeriksa jumlah baris yang terpengaruh oleh pembaruan dengan menggunakan fungsi @@ROWCOUNT. Jika jumlah ini lebih besar dari 200, Anda melakukan rollback transaksi. Jika tidak, Anda melakukan commit.
Bagaimana Anda menyiapkan skripnya?
Latihan ini adalah bagian dari kursus
Transaksi dan Penanganan Kesalahan di SQL Server
Petunjuk latihan
- Mulai transaksi.
- Periksa apakah jumlah baris yang terpengaruh lebih besar dari 200.
- Lakukan rollback transaksi jika jumlah baris yang terpengaruh lebih dari 200.
- Lakukan commit transaksi jika jumlah baris yang terpengaruh kurang dari atau sama dengan 200.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
-- Begin the transaction
___ ___;
UPDATE accounts set current_balance = current_balance + 100
WHERE current_balance < 5000;
-- Check number of affected rows
IF @@ROWCOUNT > ___
BEGIN
-- Rollback the transaction
___ ___;
SELECT 'More accounts than expected. Rolling back';
END
ELSE
BEGIN
-- Commit the transaction
___ ___;
SELECT 'Updates commited';
END