Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de análisis SQL en Microsoft Fabric
Almacenamiento 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)
Contenido relacionado
- sys.messages
- Gravedades de errores del motor de base de datos
- PROBAR... 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)
- Referencia de errores y eventos (motor de base de datos)