Kiezen wanneer je een transactie commit of terugdraait
De bank waar je werkt heeft besloten $100 te geven aan rekeningen met minder dan $5.000. De directeur wil dat geld echter alleen geven als er niet meer dan 200 rekeningen zijn met minder dan $5.000.
Je maakt een script om die $100 toe te kennen. Van de vele manieren waarop je dit kunt doen, kies je ervoor om een transactie te openen en vervolgens elke rekening bij te werken met een saldo van minder dan $5.000. Daarna controleer je het aantal rijen dat is beïnvloed door de update met de functie @@ROWCOUNT. Als dit aantal groter is dan 200, draai je de transactie terug. Anders commit je deze.
Hoe bereid je het script voor?
Deze oefening maakt deel uit van de cursus
Transacties en foutafhandeling in SQL Server
Oefeninstructies
- Begin de transactie.
- Controleer of het aantal beïnvloede rijen groter is dan 200.
- Draai de transactie terug als het aantal beïnvloede rijen meer dan 200 is.
- Commit de transactie als het aantal beïnvloede rijen kleiner dan of gelijk aan 200 is.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- 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