Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas 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)