Not
Å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
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Denna funktion returnerar felnumret för felet som orsakade CATCH-blocket i en TRY... CATCH-konstruktionen ska exekveras.
Transact-SQL syntaxkonventioner
Syntax
ERROR_NUMBER ( )
Returtyper
int
Returvärde
När den anropas i ett CATCH-block returneras ERROR_NUMBER felnumret för det fel som orsakade att CATCH-blocket kördes.
ERROR_NUMBER returnerar NULL när den anropas utanför räckvidden för ett CATCH-block.
Anmärkningar
ERROR_NUMBER stöder anrop var som helst inom ramen för ett CATCH-block.
ERROR_NUMBER returnerar ett relevant felnummer oavsett hur många gånger den körs eller var den körs inom blockets CATCH omfattning. Detta står i kontrast till en funktion som @@ERROR, som endast returnerar ett felnummer i påståendet direkt efter det som orsakar felet.
I ett nästlatat CATCH block returnerar ERROR_NUMBER felnumret som är specifikt för omfattningen av blocket CATCH som refererade till det blocket CATCH . Till exempel, blocket CATCH av en yttre TRY... CATCH-konstruktionen kan ha en inre TRY...CATCH konstruktion. Inuti det inre CATCH blocket returnerar ERROR_NUMBER numret på felet som anropade det inre CATCH blocket. Om ERROR_NUMBER den körs i det yttre CATCH blocket returnerar den numret på felet som anropade det yttre CATCH blocket.
Examples
A. Att använda ERROR_NUMBER i ett CATCH-block
Detta exempel visar ett SELECT påstående som genererar ett del-med-noll-fel. Blocket CATCH returnerar felnumret.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;
GO
Här är resultatet.
-----------
(0 row(s) affected)
ErrorNumber
-----------
8134
(1 row(s) affected)
B. Att använda ERROR_NUMBER i ett CATCH-block med andra felhanteringsverktyg
Detta exempel visar ett SELECT påstående som genererar ett del-med-noll-fel. Tillsammans med felnumret returnerar blocket CATCH information om det 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)
Se även
sys.messages (Transact-SQL)
TRY... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Referens för fel och händelser (databasmotor)