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
Instrucciones del ejercicio
- Rodea el manejo de errores con un bloque
CATCH. - Inserta
'Error inserting a product'en la tablaerrorsy rodea esta inserción con otro bloqueTRY. - Rodea el manejo de errores anidado con otro bloque
CATCH. - Selecciona la línea del error y el mensaje de error en el
CATCHinterno.
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;
___ ___
___ ___