Välja när en transaktion ska committats eller återställas
Banken där du arbetar har beslutat att ge 100 dollar till de konton som har mindre än 5 000 dollar. Bankdirektören vill dock bara betala ut pengarna om det inte finns fler än 200 sådana konton.
Du förbereder ett skript för att dela ut dessa 100 dollar. Av flera möjliga tillvägagångssätt väljer du att öppna en transaktion och sedan uppdatera alla konton med ett saldo under 5 000 dollar. Därefter kontrollerar du hur många rader som påverkades av uppdateringen med hjälp av funktionen @@ROWCOUNT. Om antalet är större än 200 återställer du transaktionen. Annars genomför du den.
Hur förbereder du skriptet?
Den här övningen är en del av kursen
Transaktioner och felhantering i SQL Server
Övningsinstruktioner
- Påbörja transaktionen.
- Kontrollera om antalet påverkade rader är större än 200.
- Återställ transaktionen om antalet påverkade rader är fler än 200.
- Genomför transaktionen om antalet påverkade rader är 200 eller färre.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
-- 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