저장 프로시저내의 에러를 디버깅하는 것은 쉽지가 않다.
이때 다음과 같은 에러메시지 저장용 테이블을 만들어 임시로 사용한다면 에러나는 부분을 찾기가 쉽다.
에러메시지 저장 테이블 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
'SQL Server' 카테고리의 다른 글
ORDER BY 없이 현재 보이는 순서대로 ROW_NUMBER() 구하기 (0) | 2017.11.30 |
---|---|
sys.sysprocesses 시스템뷰 의 net_address(맥어드레스) 부정확함 (0) | 2017.03.18 |
엔터값 ( 캐리지리턴, 라인피드) 있는 자료만 찾기 (0) | 2017.02.11 |
SSMS "스트립트 생성" 마법사로 테이블 자료 이동 (0) | 2016.11.03 |
ROW_NUMBER, RANK, DENSE_RANK 함수 (0) | 2016.07.29 |