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

Ваш собственный блок TRY..CATCH

Измените dbo.cuspRideSummaryDelete, добавив намеренную ошибку, чтобы проверить, как работает блок TRY CATCH.

Это упражнение является частью курса

Написание функций и хранимых процедур в SQL Server

Посмотреть курс

Инструкции к упражнению

  • Намеренно укажите для @DateParm неверный тип данных nvarchar(30) вместо date.
  • Добавьте @Error как необязательный параметр OUTPUT.
  • Поместите инструкцию DELETE внутрь блока BEGIN TRY...END TRY.
  • Объедините ERROR_NUMBER(), ERROR_SEVERITY(), ERROR_STATE(), ERROR_MESSAGE(), ERROR_LINE() в блоке BEGIN CATCH...END CATCH и присвойте результат переменной @Error с помощью SET.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

-- Alter the stored procedure
CREATE OR ALTER PROCEDURE dbo.cuspRideSummaryDelete
	-- (Incorrectly) specify @DateParm
	___ ___(30),
    -- Specify @Error
	___ nvarchar(max) = NULL OUTPUT
AS
SET NOCOUNT ON
BEGIN
  -- Start of the TRY block
  ___ ___
  	  -- Delete
      DELETE FROM RideSummary
      WHERE Date = @DateParm
  -- End of the TRY block
  ___ ___
  -- Start of the CATCH block
  ___ ___
		SET @Error = 
		'Error_Number: '+ CAST(___() AS VARCHAR) +
		'Error_Severity: '+ CAST(___() AS VARCHAR) +
		'Error_State: ' + CAST(___() AS VARCHAR) + 
		'Error_Message: ' + ___() + 
		'Error_Line: ' + CAST(___() AS VARCHAR)
  -- End of the CATCH block
  ___ ___
END;
Редактировать и запускать код