Delen via


ERROR_NUMBER (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Deze functie geeft het foutnummer terug van de fout die het CATCH-blok van een TRY... CATCH-constructie om uit te voeren.

Transact-SQL syntaxis-conventies

Syntaxis

ERROR_NUMBER ( )  

Retourtypen

int

Retourwaarde

Wanneer een CATCH-blok wordt aangeroepen, ERROR_NUMBER geeft het het foutnummer terug van de fout die het CATCH-blok heeft laten draaien.

ERROR_NUMBER geeft NULL terug wanneer het buiten de scope van een CATCH-blok wordt aangeroepen.

Opmerkingen

ERROR_NUMBER ondersteunt aanroepen overal binnen het bereik van een CATCH-blok.

ERROR_NUMBER geeft een relevant foutgetal terug, ongeacht hoe vaak het draait, of waar het binnen de scope van het CATCH blok loopt. Dit staat in contrast met een functie als @@ERROR, die alleen een foutgetal teruggeeft in de stelling direct na die welke een fout veroorzaakt.

In een genest CATCH blok ERROR_NUMBER geeft het foutnummer terug dat specifiek is voor de scope van het CATCH blok dat naar dat CATCH blok verwees. Bijvoorbeeld, het CATCH blok van een buitenste TRY... De CATCH-constructie kan een innerlijke TRY...CATCH constructie hebben. Binnen dat binnenste CATCH blok ERROR_NUMBER geeft het nummer van de fout die het binnenste CATCH blok heeft aangeroepen, terug. Als ERROR_NUMBER het in het buitenste CATCH blok draait, geeft het het nummer terug van de fout die dat buitenste CATCH blok heeft aangeroepen.

Voorbeelden

Eén. Gebruik ERROR_NUMBER in een CATCH-blok

Dit voorbeeld toont een SELECT uitspraak die een deel-door-nul fout genereert. Het CATCH blok geeft het foutnummer terug.

BEGIN TRY  
    -- Generate a divide-by-zero error.  
    SELECT 1/0;  
END TRY  
BEGIN CATCH  
    SELECT ERROR_NUMBER() AS ErrorNumber;  
END CATCH;  
GO  

Hier is het resultatenoverzicht.

-----------

(0 row(s) affected)

ErrorNumber
-----------
8134

(1 row(s) affected)

B. Het gebruik van ERROR_NUMBER in een CATCH-blok met andere foutafhandelingstools

Dit voorbeeld toont een SELECT uitspraak die een deel-door-nul fout genereert. Naast het foutnummer geeft het CATCH blok informatie over die fout terug.

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  

Hier is het resultatenoverzicht.

-----------

(0 row(s) affected)

ErrorNumber ErrorSeverity ErrorState  ErrorProcedure   ErrorLine  ErrorMessage
----------- ------------- ----------- ---------------  ---------- ----------------------------------
8134        16            1           NULL             4          Divide by zero error encountered.

(1 row(s) affected)

Zie ook

sys.messages (Transact-SQL)
TRY... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
FOUT_PROCÉDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
FOUTTOESTAND (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Naslaginformatie over fouten en gebeurtenissen (database-engine)