ComenzarEmpieza gratis

Usar funciones de error en un TRY...CATCH anidado

Has recibido algunas bicicletas eléctricas nuevas en tu tienda, así que necesitas actualizar el stock.

Quieres registrar que recibiste 2 bicicletas Trek Powerfly 5 - 2018 con un precio de $3499.99 cada una, y 3 New Power K- 2018 a $1999.99 cada una.

Intentas insertar los productos en la base de datos porque crees que son modelos nuevos. Sin embargo, olvidaste que ya tienes la primera en stock. Por suerte, la tabla products tiene una restricción que exige que cada nombre de producto sea único.

Preparas un script que controle posibles errores en las inserciones. También quieres insertar los posibles errores en una tabla llamada errors y, si algo falla al insertar el error, mostrar el número y el mensaje del error.

Este ejercicio forma parte del curso

Transacciones y control de errores en SQL Server

Ver curso

Instrucciones del ejercicio

  • Rodea el manejo de errores con un bloque CATCH.
  • Inserta 'Error inserting a product' en la tabla errors y rodea esta inserción con otro bloque TRY.
  • Rodea el manejo de errores anidado con otro bloque CATCH.
  • Selecciona la línea del error y el mensaje de error en el CATCH interno.

Ejercicio interactivo práctico

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

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