SQL Server

저장 프로시저내 에러 디버깅용 테이블 및 ERROR_MESSAGE() 저장

미스터몽키 2017. 3. 8. 11:34


저장 프로시저내의 에러를 디버깅하는 것은 쉽지가 않다.

이때 다음과 같은 에러메시지 저장용 테이블을 만들어 임시로 사용한다면 에러나는 부분을 찾기가 쉽다.


에러메시지 저장 테이블 TEST_ERR

SRL              [int] IDENTITY(1,1) NOT NULL,

ERR_NUM     [int] NULL,

ERR_MSG     [nvarchar](2048) NULL,

MDATE         [datetime] NULL



저장 프로시저의 CATCH 부분에서 

ERROR_NUMBER, ERROR_MESSAGE 함수로 확인된 값을 저장한다.



BEGIN TRY

  BEGIN TRAN

...

  COMMIT TRAN  

END TRY

BEGIN CATCH

  ROLLBACK TRAN

  

  INSERT INTO TEST_ERR (ERR_NUM, ERR_MSG, MDATE)

  VALUES (ERROR_NUMBER(), ERROR_MESSAGE(), GETDATE());


END CATCH