Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
Den här funktionen returnerar allvarlighetsgradsvärdet för felet där ett fel inträffar, om felet orsakade att byggblocket CATCHTRY...CATCH körs.
Transact-SQL syntaxkonventioner
Syntax
ERROR_SEVERITY ( )
Returtyper
Int
Returvärde
När det anropas i ett CATCH block där ett fel inträffar returneras ERROR_SEVERITY allvarlighetsgraden för det fel som gjorde CATCH att blocket kördes.
ERROR_SEVERITY returnerar NULL om det anropas utanför omfånget för ett CATCH block.
Anmärkningar
ERROR_SEVERITY stöder anrop var som helst inom omfånget för ett CATCH block.
ERROR_SEVERITY returnerar felets allvarlighetsgradsvärde för ett fel, oavsett hur många gånger det körs eller var det körs inom blockets CATCH omfång. Detta står i kontrast till en funktion som @@ERROR, som endast returnerar ett felnummer i -instruktionen omedelbart efter den som orsakar ett fel.
ERROR_SEVERITY fungerar vanligtvis i ett kapslat CATCH block.
ERROR_SEVERITY returnerar felets allvarlighetsgradsvärde som är specifikt för omfånget för CATCH blocket som refererade till blocket CATCH . Till exempel kan blocket för CATCH en yttre TRY...CATCH konstruktion ha en inre TRY...CATCH konstruktion. I det inre CATCH blocket ERROR_SEVERITY returnerar du allvarlighetsgradsvärdet för felet som anropade det inre CATCH blocket. Om ERROR_SEVERITY körs i det yttre CATCH blocket returneras felets allvarlighetsgrad för felet som anropade det yttre CATCH blocket.
Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)
A. Använda ERROR_SEVERITY i ett CATCH-block
Det här exemplet visar en lagrad procedur som genererar ett divide-by-zero-fel.
ERROR_SEVERITY returnerar allvarlighetsgradsvärdet för felet.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1 / 0;
END TRY
BEGIN CATCH
SELECT ERROR_SEVERITY() AS ErrorSeverity;
END CATCH
GO
Här är resultatet.
-----------
(0 row(s) affected)
ErrorSeverity
-------------
16
(1 row(s) affected)
B. Använda ERROR_SEVERITY i ett CATCH-block med andra verktyg för felhantering
Det här exemplet visar en SELECT instruktion som genererar en uppdelning med noll fel. Den lagrade proceduren returnerar information om felet.
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
Här är resultatet.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ----------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Relaterat innehåll
- sys.messages
- Allvarlighetsgrad för databasmotorfel
- FÖRSÖKA... 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)
- Referens för fel och händelser (databasmotor)