ComeçarComece de graça

Escolhendo quando fazer commit ou rollback de uma transação

O banco onde você trabalha decidiu dar US\( 100 para as contas com menos de US\) 5.000. No entanto, a diretoria do banco só quer liberar esse dinheiro se não houver mais de 200 contas com menos de US$ 5.000.

Você prepara um script para conceder esses US\( 100 e, entre as várias maneiras de fazer isso, decide abrir uma transação e, em seguida, atualizar cada conta com saldo inferior a US\) 5.000. Depois, você verifica o número de linhas afetadas pela atualização usando a função @@ROWCOUNT. Se esse número for maior que 200, você faz rollback da transação. Caso contrário, você faz commit.

Como você prepara esse script?

Este exercício faz parte do curso

Transações e tratamento de erros no SQL Server

Ver curso

Instruções do exercício

  • Inicie a transação.
  • Verifique se o número de linhas afetadas é maior que 200.
  • Faça rollback da transação se o número de linhas afetadas for maior que 200.
  • Faça commit da transação se o número de linhas afetadas for menor ou igual a 200.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

-- 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 e executar o código