自分だけの TRY..CATCH
TRY と CATCH ブロックの動きを確認するため、意図的なエラーを含めるように dbo.cuspRideSummaryDelete を変更してください。
この演習はコースの一部です
SQL Server における関数とストアドプロシージャの作成
演習の手順
dateではなく、誤って@DateParmにnvarchar(30)のデータ型を割り当てます。- 省略可能な
OUTPUTパラメーターとして@Errorを含めます。 DELETE文はBEGIN TRY...END TRYブロック内に含めます。BEGIN CATCH...END CATCHブロック内でERROR_NUMBER()、ERROR_SEVERITY()、ERROR_STATE()、ERROR_MESSAGE()、ERROR_LINE()を連結し、@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;