НачатьНачать бесплатно

Использование функций ошибок во вложенной конструкции 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; 
    ___ ___    
___ ___
Редактировать и запускать код