Začněte nyníZačněte zdarma

Kdy transakci potvrdit a kdy vrátit zpět

Banka, ve které pracuješ, se rozhodla přidat 100 \( na všechny účty s zůstatkem nižším než 5 000 \). Ředitel banky ale chce tuto částku vyplatit pouze v případě, že takových účtů není více než 200.

Připravíš skript, který těchto 100 \( připíše, a z různých možností se rozhodneš pro následující postup: otevřeš transakci a aktualizuješ všechny účty se zůstatkem nižším než 5 000 \). Poté pomocí funkce @@ROWCOUNT zjistíš počet řádků ovlivněných aktualizací. Pokud je toto číslo větší než 200, transakci vrátíš zpět. V opačném případě ji potvrdíš.

Jak takový skript připravíš?

Toto cvičení je součástí kurzu

Transakce a zpracování chyb v SQL Serveru

Zobrazit kurz

Pokyny k cvičení

  • Začni transakci.
  • Zkontroluj, jestli je počet ovlivněných řádků větší než 200.
  • Pokud je počet ovlivněných řádků větší než 200, proveď rollback transakce.
  • Pokud je počet ovlivněných řádků menší nebo roven 200, transakci potvrď.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

-- 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
Upravit a spustit kód