Використання функцій помилок у вкладеному 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;
___ ___
___ ___