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