Ваш собственный блок 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;