DB

프로시져 오류처리 방법

조셉LEE 2024. 2. 29. 15:07
728x90
반응형

MSSQL 프로시져를 만들었을때 오류 처리 해주는게 좋지 않을까한다.

SELECT 문은 필요로 하지 않지만 CURSOR를 통해서 INSERT문 DELETE문을 만들때는 TRY구문으로

오류처리 해주기를 바란다.

 

TRY CATCH문을 사용하여 오류가 발생시에 PRINT문으로 찍어보거나

실행내용을 DB에 남기는 방법중 하나를 택하기 바란다.

DB에는 컬럼을 상황에 맞게끔 CLOB, BLOB 형태로 만드는게 좋으며

나는 DB만드는게 귀찮다 하시면 PRINT를 찍어도 무방함

EX=====================================================

    BEGIN CATCH

    IF ERROR_STATE() = 1
    BEGIN

    SELECT @P_LOG = '[ERROR]NUMBER : ' + CONVERT(NVARCHAR(100), ERROR_NUMBER()
            + '|SEVERITY : ' + CONVERT(NVARCHAR(100), ERROR_SEVERITY()
            + '|STATE : ' + CONVERT(NVARCHAR(100), ERROR_STATE()
            + '|LINE : ' + CONVERT(NVARCHAR(100), ERROR_LINE())
            , @ERRORPROCEDURE = 'PRC=' + ERROR_PROCEDURE(), @P_ERROR_STR = ERROR_MESSAGE()
    ;

    PRINT @P_LOG;

    END

    END CATCH

반응형
LIST