Scegliere quando eseguire COMMIT o ROLLBACK di una transazione
La banca in cui lavori ha deciso di dare 100 \( ai conti con meno di 5.000 \). Tuttavia, il direttore vuole erogare quel denaro solo se non ci sono più di 200 conti con meno di 5.000 $.
Prepari uno script per accreditare quei 100 \( e, tra i vari modi possibili, decidi di aprire una transazione e poi aggiornare ogni conto con un saldo inferiore a 5.000 \). Dopo, controlli il numero di righe interessate dall’UPDATE usando la funzione @@ROWCOUNT. Se questo numero è maggiore di 200, esegui il rollback della transazione. Altrimenti, esegui il commit.
Come imposteresti lo script?
Questo esercizio fa parte del corso
Transazioni e gestione degli errori in SQL Server
Istruzioni dell'esercizio
- Avvia la transazione.
- Verifica se il numero di righe interessate è maggiore di 200.
- Esegui il rollback della transazione se il numero di righe interessate è superiore a 200.
- Esegui il commit della transazione se il numero di righe interessate è minore o uguale a 200.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
-- 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