Использование функций ошибок во вложенной конструкции TRY...CATCH
В ваш магазин поступили новые электровелосипеды, и вам нужно обновить остатки на складе.
Вы хотите зарегистрировать получение 2 велосипедов Trek Powerfly 5 - 2018 по цене $3499,99 каждый и 3 велосипедов New Power K- 2018 по цене $1999,99 каждый.
Вы пытаетесь добавить товары в базу данных, считая их новыми моделями. Однако вы забыли, что первый из них уже есть на складе. К счастью, таблица products имеет ограничение, требующее уникальности названия каждого товара.
Вы подготавливаете скрипт для обработки возможных ошибок при вставке данных. Кроме того, вы хотите записывать возникающие ошибки в таблицу errors, а если при записи ошибки что-то пойдёт не так — выводить номер и сообщение этой ошибки.
Это упражнение является частью курса
Транзакции и обработка ошибок в SQL Server
Инструкции к упражнению
- Оберните обработку ошибок блоком
CATCH. - Вставьте
'Error inserting a product'в таблицуerrorsи оберните эту вставку блокомTRY. - Оберните вложенную обработку ошибок ещё одним блоком
CATCH. - Выберите номер строки и сообщение ошибки во внутреннем блоке
CATCH.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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;
___ ___
___ ___