始める無料で始める

自分だけの TRY..CATCH

TRYCATCH ブロックの動きを確認するため、意図的なエラーを含めるように dbo.cuspRideSummaryDelete を変更してください。

この演習はコースの一部です

SQL Server における関数とストアドプロシージャの作成

コースを見る

演習の手順

  • date ではなく、誤って @DateParmnvarchar(30) のデータ型を割り当てます。
  • 省略可能な OUTPUT パラメーターとして @Error を含めます。
  • DELETE 文は BEGIN TRY...END TRY ブロック内に含めます。
  • BEGIN CATCH...END CATCH ブロック内で ERROR_NUMBER()ERROR_SEVERITY()ERROR_STATE()ERROR_MESSAGE()ERROR_LINE() を連結し、@ErrorSET します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

-- 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;
コードを編集して実行