Kiedy zatwierdzić, a kiedy wycofać transakcję
Bank, w którym pracujesz, postanowił przyznać 100 USD właścicielom kont z saldem poniżej 5 000 USD. Dyrektor banku chce jednak wypłacić te środki tylko wtedy, gdy takich kont jest nie więcej niż 200.
Przygotowujesz skrypt, który doda te 100 USD. Spośród różnych możliwych podejść decydujesz się otworzyć transakcję, a następnie zaktualizować każde konto z saldem poniżej 5 000 USD. Następnie sprawdzasz liczbę wierszy zmodyfikowanych przez aktualizację, korzystając z funkcji @@ROWCOUNT. Jeśli ta liczba jest większa niż 200, wycofujesz transakcję. W przeciwnym razie zatwierdzasz ją.
Jak przygotować taki skrypt?
To ćwiczenie jest częścią kursu
Transakcje i obsługa błędów w SQL Server
Instrukcje do ćwiczenia
- Rozpocznij transakcję.
- Sprawdź, czy liczba zmodyfikowanych wierszy jest większa niż 200.
- Wycofaj transakcję, jeśli liczba zmodyfikowanych wierszy przekracza 200.
- Zatwierdź transakcję, jeśli liczba zmodyfikowanych wierszy wynosi 200 lub mniej.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- 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