ComeçarComece de graça

Verificando @@TRANCOUNT em uma estrutura TRY...CATCH

O proprietário da conta 10 ganhou um sorteio e receberá US\( 200. Você prepara um script simples para adicionar esses US\) 200 ao current_balance da conta 10. Você acha que escreveu tudo certo, mas prefere conferir seu código.

Na verdade, você cometeu um erro bobo ao adicionar o dinheiro: SET current_balance = 'current_balance' + 200. Você escreveu 'current_balance' como uma string, o que gera um erro.

O script que você criar deve fazer rollback de todas as alterações se ocorrer um erro, verificando se há uma transação aberta. Se tudo correr bem, a transação deve ser confirmada (commit), também verificando se há uma transação aberta.

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.
  • Corrija o erro na operação.
  • Dentro do bloco TRY, verifique se há uma transação e faça o commit.
  • Dentro do bloco CATCH, verifique se há uma transação e faça o rollback.

Exercício interativo prático

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

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