Când să faci commit sau rollback unei tranzacții
Banca la care lucrezi a decis să ofere 100 \( acelor conturi cu un sold mai mic de 5.000 \). Totuși, directorul băncii dorește să acorde această sumă doar dacă nu există mai mult de 200 de conturi cu un sold sub 5.000 $.
Pregătești un script pentru a acorda cei 100 \(, și dintre variantele posibile, alegi să deschizi o tranzacție și să actualizezi toate conturile cu un sold mai mic de 5.000 \). Ulterior, verifici numărul de rânduri afectate de actualizare, folosind funcția @@ROWCOUNT. Dacă acest număr este mai mare de 200, faci rollback tranzacției. În caz contrar, o confirmi cu commit.
Cum pregătești scriptul?
Acest exercițiu face parte din cursul
Tranzacții și gestionarea erorilor în SQL Server
Instrucțiuni pentru exercițiu
- Începe tranzacția.
- Verifică dacă numărul de rânduri afectate este mai mare de 200.
- Fă rollback tranzacției dacă numărul de rânduri afectate depășește 200.
- Fă commit tranzacției dacă numărul de rânduri afectate este mai mic sau egal cu 200.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
-- 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