Ваш власний 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і присвойте черезSETдо@Error.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
-- 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;