Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-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)