ComenzarEmpieza gratis

Comprobar @@TRANCOUNT en una construcción TRY...CATCH

La persona titular de la cuenta 10 ha ganado un sorteo y recibirá 200 \(. Preparas un script sencillo para añadir esos 200 \) al current_balance de la cuenta 10. Crees que lo has escrito todo bien, pero prefieres revisar tu código.

De hecho, cometiste un error tonto al sumar el dinero: SET current_balance = 'current_balance' + 200. Escribiste 'current_balance' como una cadena, lo que genera un error.

El script que crees debe hacer un rollback de cualquier cambio si se produce un error, comprobando si hay una transacción abierta. Si todo va bien, la transacción debe confirmarse (commit), también comprobando si hay una transacción abierta.

Este ejercicio forma parte del curso

Transacciones y control de errores en SQL Server

Ver curso

Instrucciones del ejercicio

  • Inicia la transacción.
  • Corrige el error en la operación.
  • Dentro del bloque TRY, comprueba si hay una transacción y haz commit.
  • Dentro del bloque CATCH, comprueba si hay una transacción y haz rollback.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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
Editar y ejecutar código