ComenzarEmpieza gratis

Elegir cuándo confirmar o deshacer una transacción

El banco donde trabajas ha decidido dar 100 \( a aquellas cuentas con menos de 5.000 \). Sin embargo, la dirección del banco solo quiere dar ese dinero si no hay más de 200 cuentas con menos de 5.000 $.

Preparas un script para entregar esos 100 \( y, de las múltiples formas de hacerlo, decides abrir una transacción y luego actualizar cada cuenta con un saldo inferior a 5.000 \). Después, compruebas el número de filas afectadas por la actualización usando la función @@ROWCOUNT. Si este número es mayor que 200, haces rollback de la transacción. En caso contrario, la confirmas (commit).

¿Cómo preparas el script?

Este ejercicio forma parte del curso

Transacciones y control de errores en SQL Server

Ver curso

Instrucciones del ejercicio

  • Inicia la transacción.
  • Comprueba si el número de filas afectadas es mayor que 200.
  • Deshaz (rollback) la transacción si el número de filas afectadas es mayor que 200.
  • Confirma (commit) la transacción si el número de filas afectadas es menor o igual que 200.

Ejercicio interactivo práctico

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

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