나만의 TRY..CATCH 만들기
TRY CATCH 블록이 어떻게 동작하는지 확인할 수 있도록, 의도적인 오류를 포함하도록 dbo.cuspRideSummaryDelete를 변경하세요.
이 연습은 강의의 일부입니다
SQL Server에서 함수와 저장 프로시저 작성하기
연습 안내
date대신nvarchar(30)데이터 형식으로@DateParm을 잘못 지정하세요.- 선택적
OUTPUT매개변수로@Error를 포함하세요. DELETE문을BEGIN TRY...END TRY블록 안에 포함하세요.BEGIN CATCH...END CATCH블록 안에서ERROR_NUMBER(),ERROR_SEVERITY(),ERROR_STATE(),ERROR_MESSAGE(),ERROR_LINE()을 연결(concatenate)하고, 그 값을@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;