ERROR_SEVERITY (Transact-SQL)
Se aplica a: punto de conexión de SQL Server
Azure SQL Database
Azure SQL Instancia administrada
punto de conexión de SQL Analytics Analytics Platform System (PDW) de SQL Analytics
System (PDW)
de SQL Server en Microsoft Fabric
Warehouse en Microsoft Fabric
Esta función devuelve el valor de gravedad del error cuando se produce un error, si provoca la ejecución del bloque CATCH de una construcción TRY…CATCH.
Convenciones de sintaxis de Transact-SQL
Sintaxis
ERROR_SEVERITY ( )
Nota:
Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.
Tipos de valor devuelto
int
Valor devuelto
Cuando se llama en un bloque CATCH donde se produce un error, ERROR_SEVERITY
devuelve la gravedad del error que provocó la ejecución del bloque CATCH
.
ERROR_SEVERITY
NULL si se llamó desde fuera del ámbito de un bloque CATCH.
Comentarios
ERROR_SEVERITY
admite llamadas en cualquier lugar del ámbito de un bloque CATCH.
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 funciones como @@ERROR, que solo devuelve un número de error en la instrucción inmediatamente posterior a la que produjo el 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 bloque CATCH
de una construcción TRY...CATCH externa podría tener una construcción TRY...CATCH
interna. 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)
A. Utilizar 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
El conjunto de resultados es el siguiente:
-----------
(0 row(s) affected)
ErrorSeverity
-------------
16
(1 row(s) affected)
B. Utilizar 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
El conjunto de resultados es el siguiente:
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ----------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Consulte también
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)
Referencia de errores y eventos del motor de base de datos
Comentaris
https://aka.ms/ContentUserFeedback.
Properament: al llarg del 2024 eliminarem gradualment GitHub Issues com a mecanisme de retroalimentació del contingut i el substituirem per un nou sistema de retroalimentació. Per obtenir més informació, consulteu:Envieu i consulteu els comentaris de