ComeçarComece de graça

Usando funções de erro em um TRY...CATCH aninhado

Você recebeu algumas novas bikes elétricas na sua loja, então precisa atualizar o estoque.

Você quer registrar que recebeu 2 Trek Powerfly 5 - 2018 com preço de US$3499,99 cada e 3 New Power K- 2018 por US$1999,99 cada.

Você tenta inserir os produtos no banco de dados porque acha que são modelos novos. Porém, você esqueceu que o primeiro já está em estoque. Felizmente, a tabela products tem uma restrição que exige que cada nome de produto seja único.

Você prepara um script para controlar possíveis erros nas inserções. Você também quer inserir os possíveis erros em uma tabela chamada errors e, se algo falhar ao inserir o erro, exibir o número e a mensagem do erro.

Este exercício faz parte do curso

Transações e tratamento de erros no SQL Server

Ver curso

Instruções do exercício

  • Envolva o tratamento de erro com um bloco CATCH.
  • Insira 'Error inserting a product' na tabela errors e envolva essa inserção com outro bloco TRY.
  • Envolva o tratamento de erro aninhado com outro bloco CATCH.
  • Selecione a linha do erro e a mensagem do erro no CATCH interno.

Exercício interativo prático

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

BEGIN TRY
    INSERT INTO products (product_name, stock, price) 
    VALUES	('Trek Powerfly 5 - 2018', 2, 3499.99),   		
    		('New Power K- 2018', 3, 1999.99)		
END TRY
-- Set up the outer CATCH block
___ ___
	SELECT 'An error occurred inserting the product!';
    -- Set up the inner TRY block
    ___ ___
    	-- Insert the error
    	INSERT INTO ___ 
        	VALUES ('Error inserting a product');
    ___ ___    
    -- Set up the inner CATCH block
    ___ ___
    	-- Show number and message error
    	SELECT 
        	___ AS line,	   
			___ AS message; 
    ___ ___    
___ ___
Editar e executar o código