Verificarea @@TRANCOUNT într-un construct TRY...CATCH
Proprietarul contului 10 a câștigat o tombolă și va primi 200 \(. Pregătești un script simplu pentru a adăuga cei 200 \) la current_balance-ul contului 10. Crezi că ai scris totul corect, dar preferi să verifici codul.
De fapt, ai făcut o greșeală când ai adăugat suma: SET current_balance = 'current_balance' + 200. Ai scris 'current_balance' ca șir de caractere, ceea ce generează o eroare.
Scriptul pe care îl creezi ar trebui să anuleze orice modificare dacă apare o eroare, verificând dacă există o tranzacție deschisă. Dacă totul decurge corect, tranzacția ar trebui confirmată, verificând de asemenea dacă există o tranzacție deschisă.
Acest exercițiu face parte din cursul
Tranzacții și gestionarea erorilor în SQL Server
Instrucțiuni pentru exercițiu
- Începe tranzacția.
- Corectează greșeala din operațiune.
- În blocul
TRY, verifică dacă există o tranzacție și confirmă-o. - În blocul
CATCH, verifică dacă există o tranzacție și anuleaz-o.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
BEGIN TRY
-- Begin the transaction
___ ___;
-- Correct the mistake
UPDATE accounts SET current_balance = 'current_balance' + 200
WHERE account_id = 10;
-- Check if there is a transaction
IF ___ > 0
-- Commit the transaction
___ ___;
SELECT * FROM accounts
WHERE account_id = 10;
END TRY
BEGIN CATCH
SELECT 'Rolling back the transaction';
-- Check if there is a transaction
IF ___ > 0
-- Rollback the transaction
___ ___;
END CATCH