다음을 통해 공유


ERROR_SEVERITY(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System(PDW)Microsoft Fabric의 SQL 분석 엔드포인트Microsoft Fabric의 웨어하우스

이 함수는 해당 오류로 인해 CATCH 구문 블록이 실행된 경우 오류가 발생하는 오류의 TRY...CATCH 심각도 값을 반환합니다.

Transact-SQL 구문 표기 규칙

구문

ERROR_SEVERITY ( )

반환 형식

int

반환 값

오류가 발생한 블록에서 CATCH 호출되면 블록이 실행된 ERROR_SEVERITY 오류의 심각도 값을 반환합니다CATCH.

ERROR_SEVERITY는 블록 범위 외부에서 호출되면 를 NULL 반환합니다CATCH.

설명

ERROR_SEVERITY 는 블록 범위 내의 모든 위치에서 호출을 CATCH 지원합니다.

ERROR_SEVERITYCATCH 블록의 범위 내에서 실행되는 경우 실행 횟수 또는 실행 위치에 관계 없이 오류의 심각도 값을 반환합니다. 이는 @@ERROR 같은 함수와 대조됩니다. 이 함수는 오류를 발생시킨 바로 다음 문에 오류 번호만 반환합니다.

ERROR_SEVERITY는 일반적으로 중첩된 CATCH 블록에서 작동합니다. ERROR_SEVERITY는 해당 CATCH 블록을 참조한 CATCH 블록의 범위에 관련된 오류 심각도 값을 반환합니다. 예를 들어 CATCH 외부 TRY...CATCH 구문의 블록에는 내부 TRY...CATCH 구문이 있을 수 있습니다. 해당 내부 CATCH 블록 내에서 ERROR_SEVERITY는 내부 CATCH 블록을 호출한 오류의 심각도 값을 반환합니다. ERROR_SEVERITY가 외부 CATCH 블록에서 실행되는 경우 해당 외부 CATCH 블록을 호출한 오류의 심각도 값을 반환합니다.

예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)

A. CATCH 블록에서 ERROR_SEVERITY 사용

이 예에서는 0으로 나누기 오류를 생성하는 저장 프로시저를 보여 줍니다. ERROR_SEVERITY는 해당 오류의 심각도 값을 반환합니다.

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

결과 집합은 다음과 같습니다.

-----------

(0 row(s) affected)

ErrorSeverity
-------------
16

(1 row(s) affected)

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

이 예에서는 0으로 나누기 오류를 일으키는 SELECT 문을 보여 줍니다. 저장된 프로시저는 오류에 대한 정보를 반환합니다.

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

결과 집합은 다음과 같습니다.

-----------

(0 row(s) affected)

ErrorNumber ErrorSeverity ErrorState  ErrorProcedure  ErrorLine   ErrorMessage
----------- ------------- ----------- --------------- ----------- ----------------------------------
8134        16            1           NULL            4           Divide by zero error encountered.

(1 row(s) affected)