[sql] 프로시저 호출 시 에러 처리 방법

SQL에서 프로시저를 호출할 때, 발생하는 에러를 처리하는 방법에 대해 알아보겠습니다.

1. TRY-CATCH 블록 사용

BEGIN TRY
    -- 프로시저 호출
    EXEC prc_example;
END TRY
BEGIN CATCH
    -- 에러 처리
    SELECT '에러 발생: ' + ERROR_MESSAGE();
END CATCH;

위 예제에서는 TRY-CATCH 블록을 사용하여 프로시저를 호출하고, 발생하는 에러를 처리하고 있습니다. TRY 블록에서 프로시저를 호출하고, 만약 에러가 발생하면 CATCH 블록으로 이동하여 에러를 처리합니다. ERROR_MESSAGE() 함수를 사용하여 에러 메시지를 가져올 수 있습니다.

2. RETURN 값으로 에러 처리

CREATE PROCEDURE prc_example
AS
BEGIN
    BEGIN TRY
        -- 프로시저 로직
    END TRY
    BEGIN CATCH
        -- 에러 처리
        RETURN ERROR_MESSAGE();
    END CATCH;
END;

위 예제는 프로시저 내부에서 TRY-CATCH 블록을 사용하여 에러를 처리하고, 에러 발생 시 ERROR_MESSAGE() 함수를 RETURN하여 호출한 쪽에서 에러를 처리하는 방식입니다. 프로시저에서 반환된 값으로 에러 처리를 진행할 수 있습니다.

3. RAISERROR로 에러 발생 시키기

CREATE PROCEDURE prc_example
AS
BEGIN
    IF (조건)
    BEGIN
        -- 에러 발생
        RAISERROR('에러 메시지', 16, 1);
        RETURN;
    END
    -- 프로시저 로직
END;

위 예제는 프로시저 내에서 조건에 따라 직접 에러를 발생시키는 방법입니다. RAISERROR 함수를 사용하여 에러 메시지를 출력하고, 해당 에러 상태 코드와 함께 에러를 발생시킬 수 있습니다.

결론

프로시저 호출 시에 발생하는 에러를 처리하는 방법으로 TRY-CATCH 블록, RETURN 값으로 에러 처리, RAISERROR 함수를 사용하는 방법을 알아보았습니다. 각각의 방법을 적절히 사용하여 프로시저를 호출할 때 발생하는 에러를 처리하는 것이 중요합니다.


참고 문서