ERROR_SEVERITY(Transact-SQL)

TRY...CATCH 구문의 CATCH 블록이 실행되도록 한 오류의 심각도를 반환합니다.

구문

ERROR_SEVERITY()

반환 유형

int

반환 값

CATCH 블록에서 호출되는 경우 CATCH 블록이 실행되도록 한 오류 메시지의 심각도를 반환합니다.

CATCH 블록 범위 외부에서 호출된 경우 NULL을 반환합니다.

주의

ERROR_SEVERITY는 CATCH 블록 범위 내의 아무 위치에서나 호출할 수 있습니다.

ERROR_SEVERITY는 실행 횟수 또는 CATCH 블록 범위 내의 실행 위치에 관계 없이 오류 심각도를 반환합니다. 이 함수는 오류를 발생시킨 문 바로 뒤에 나오는 문이나 CATCH 블록의 첫 번째 문에 나오는 오류 번호만 반환하는 @@ERROR와 같은 함수와는 대조됩니다.

CATCH 블록이 중첩된 경우 ERROR_SEVERITY는 참조되는 CATCH 블록의 범위에 해당되는 오류 심각도를 반환합니다. 예를 들어 외부 TRY...CATCH 구문의 CATCH 블록에는 중첩된 TRY...CATCH 구문이 있을 수 있습니다. 중첩된 CATCH 블록 내에 있는 ERROR_LINE은 중첩된 CATCH 블록을 호출한 오류의 심각도를 반환합니다. 외부 CATCH 블록에서 ERROR_SEVERITY를 실행하면 해당 CATCH 블록을 호출한 오류의 심각도를 반환합니다.

1. CATCH 블록에서 ERROR_SEVERITY 사용

다음 코드 예에서는 0으로 나누기 오류를 생성하는 SELECT 문을 보여 줍니다. 오류의 심각도가 반환됩니다.

USE AdventureWorks;
GO

BEGIN TRY
    -- Generate a divide-by-zero error.
    SELECT 1/0;
END TRY
BEGIN CATCH
    SELECT ERROR_SEVERITY() AS ErrorSeverity;
END CATCH;
GO

2. CATCH 블록에서 다른 오류 처리 도구와 함께 ERROR_SEVERITY 사용

다음 코드 예에서는 0으로 나누기 오류를 생성하는 SELECT 문을 보여 줍니다. 심각도와 함께 오류와 관련된 정보가 반환됩니다.

USE AdventureWorks;
GO

BEGIN TRY
    -- Generate a divide-by-zero error.
    SELECT 1/0;
END TRY
BEGIN CATCH
    SELECT
        ERROR_NUMBER() AS ErrorNumber,
        ERROR_SEVERITY() AS ErrorSeverity,
        ERROR_STATE() AS ErrorState,
        ERROR_PROCEDURE() AS ErrorProcedure,
        ERROR_LINE() AS ErrorLine,
        ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO

참고 항목

참조

sys.messages(Transact-SQL)
TRY...CATCH(Transact-SQL)
ERROR_LINE(Transact-SQL)
ERROR_MESSAGE(Transact-SQL)
ERROR_NUMBER(Transact-SQL)
ERROR_PROCEDURE(Transact-SQL)
ERROR_STATE(Transact-SQL)
RAISERROR(Transact-SQL)
@@ERROR(Transact-SQL)

관련 자료

Transact-SQL의 오류 정보 검색
데이터베이스 엔진 오류 심각도
Transact-SQL에서 TRY...CATCH 사용
RAISERROR 사용
@@ERROR 사용

도움말 및 정보

SQL Server 2005 지원 받기