ComenzarEmpieza gratis

XACT_ABORT y THROW

Las personas clientas más adineradas del banco donde trabajas han decidido donar el 0,01% de su current_balance a una organización sin ánimo de lucro. Te encargas de preparar el script para actualizar las cuentas de los clientes, pero debes hacerlo solo para aquellas cuentas con un current_balance superior a 5.000.000 $. La directora del banco te indica que, si no hay al menos 10 clientes con alto patrimonio, no debes realizar esta operación, porque quiere entrevistar a más clientes.

Preparas un script y, entre las múltiples formas de hacerlo, decides usar XACT_ABORT en combinación con THROW. Así, si el número de filas afectadas es menor o igual que 10, puedes lanzar un error para que la transacción se revierta.

Este ejercicio forma parte del curso

Transacciones y control de errores en SQL Server

Ver curso

Instrucciones del ejercicio

  • Usa la configuración adecuada de XACT_ABORT.
  • Inicia la transacción.
  • Si el número de filas afectadas es menor o igual que 10, lanza el error con la instrucción THROW, usando el número 55000.
  • Haz COMMIT de la transacción si el número de filas afectadas es mayor que 10.

Ejercicio interactivo práctico

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

-- Use the appropriate setting
SET XACT_ABORT ___;
-- Begin the transaction
___ ___; 
	UPDATE accounts set current_balance = current_balance - current_balance * 0.01 / 100
		WHERE current_balance > 5000000;
	IF @@ROWCOUNT <= 10	
    	-- Throw the error
		___ ___, 'Not enough wealthy customers!', 1;
	ELSE		
    	-- Commit the transaction
		___ ___; 
Editar y ejecutar código