Compartir a través de


ERROR_SEVERITY (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Esta función devuelve el valor de gravedad del error en el que se produce un error, si ese error provocó la ejecución del CATCH bloque de una TRY...CATCH construcción.

Convenciones de sintaxis de Transact-SQL

Sintaxis

ERROR_SEVERITY ( )

Tipos de retorno

Int

Valor devuelto

Cuando se llama a en un CATCH bloque en el que se produce un error, ERROR_SEVERITY devuelve el valor de gravedad del error que provocó la ejecución del CATCH bloque.

ERROR_SEVERITY devuelve NULL si se llama fuera del ámbito de un CATCH bloque.

Comentarios

ERROR_SEVERITY admite llamadas en cualquier parte del ámbito de un CATCH bloque.

ERROR_SEVERITY devuelve el valor de gravedad de un error, con independencia de cuántas veces se ejecute o de dónde se ejecute dentro del ámbito del bloque CATCH. Esto contrasta con una función como @@ERROR, que solo devuelve un número de error en la instrucción inmediatamente después de la que provoca un error.

ERROR_SEVERITY normalmente funciona en un bloque CATCH anidado. ERROR_SEVERITY devuelve el valor de gravedad del error específico del ámbito del bloque CATCH al que hace referencia ese bloque CATCH. Por ejemplo, el CATCH bloque de una construcción externa TRY...CATCH podría tener una construcción interna TRY...CATCH . Dentro de ese bloque interno CATCH, ERROR_SEVERITY devuelve el valor de gravedad del error que invocó el bloque CATCH interno. Si ERROR_SEVERITY se ejecuta en el bloque CATCH externo, devuelve el valor de gravedad del error que invocó ese bloque CATCH externo.

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

Un. Uso de ERROR_SEVERITY en un bloque CATCH

En este ejemplo se muestra un procedimiento almacenado que genera un error de división por cero. ERROR_SEVERITY devuelve el valor de gravedad de ese error.

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

Este es el conjunto de resultados.

-----------

(0 row(s) affected)

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

(1 row(s) affected)

B. Uso de ERROR_SEVERITY en un bloque CATCH con otras herramientas de control de errores

En este ejemplo se muestra una instrucción SELECT que genera un error de división por cero. El procedimiento almacenado devuelve información sobre el error.

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

Este es el conjunto de resultados.

-----------

(0 row(s) affected)

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

(1 row(s) affected)