ÎncepețiÎncepe gratuit

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

Vezi cursul

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
Editează și rulează codul