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
Warehouse in Microsoft Fabric
Deze functie retourneert de berichttekst van de fout die het CATCH-blok van een TRY heeft veroorzaakt... CATCH-constructie die moet worden uitgevoerd.
Transact-SQL syntaxis-conventies
Syntaxis
ERROR_MESSAGE ( )
Retourtypen
nvarchar(4000)
Retourwaarde
Wanneer een CATCH-blok wordt aangeroepen, ERROR_MESSAGE wordt de volledige tekst van het foutbericht geretourneerd waardoor het CATCH blok werd uitgevoerd. De tekst bevat de waarden die worden opgegeven voor eventuele substitueerbare parameters, bijvoorbeeld lengten, objectnamen of tijden.
ERROR_MESSAGE retourneert NULL wanneer aangeroepen buiten het bereik van een CATCH-blok.
Opmerkingen
ERROR_MESSAGE ondersteunt aanroepen binnen het bereik van een CATCH-blok.
ERROR_MESSAGE retourneert een relevant foutbericht, ongeacht hoe vaak het wordt uitgevoerd of waar het binnen het bereik van het CATCH blok wordt uitgevoerd. Dit contrasteert met een functie zoals @@ERROR, die alleen een foutnummer retourneert in de instructie direct na de instructie die een fout veroorzaakt.
In geneste CATCH blokken ERROR_MESSAGE wordt het foutbericht geretourneerd dat specifiek is voor het bereik van het CATCH blok waarnaar naar dat CATCH blok wordt verwezen. Bijvoorbeeld het CATCH blok van een buitenste TRY... CATCH-constructie kan een binnenste TRY...CATCH constructie hebben. Binnen dat binnenste CATCH blok wordt ERROR_MESSAGE het bericht geretourneerd van de fout die het binnenste CATCH blok heeft aangeroepen. Als ERROR_MESSAGE het buitenste CATCH blok wordt uitgevoerd, wordt het bericht geretourneerd van de fout die dat buitenste blok heeft CATCH aangeroepen.
Voorbeelden
Eén. ERROR_MESSAGE gebruiken in een CATCH-blok
In dit voorbeeld ziet u een SELECT instructie waarmee een fout tussen delen en nul wordt gegenereerd. Het CATCH blok retourneert het foutbericht.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Hier is het resultatenoverzicht.
-----------
(0 row(s) affected)
ErrorMessage
----------------------------------
Divide by zero error encountered.
(1 row(s) affected)
B. Het gebruik van ERROR_MESSAGE in een CATCH-blok met andere hulpprogramma's voor foutafhandeling
In dit voorbeeld ziet u een SELECT instructie waarmee een fout tussen delen en nul wordt gegenereerd. Samen met het foutbericht retourneert het CATCH blok informatie over die fout.
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)