Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
Ez a függvény a TRY CATCH blokkját okozó hiba üzenetszövegét adja vissza... VÉGREHAJTANDÓ CATCH-szerkezet.
Transact-SQL szintaxis konvenciók
Szemantika
ERROR_MESSAGE ( )
Visszatérési típusok
nvarchar(4000)
Visszaadott érték
Catch blokk ERROR_MESSAGE meghívása esetén a blokk futtatását okozó CATCH hibaüzenet teljes szövegét adja vissza. A szöveg tartalmazza a helyettesíthető paraméterekhez megadott értékeket – például hosszokat, objektumneveket vagy időpontokat.
ERROR_MESSAGE NULL értéket ad vissza, ha a catch blokk hatókörén kívülre van meghívva.
Megjegyzések
ERROR_MESSAGE a CATCH blokk hatókörén belül bárhol támogatja a hívásokat.
ERROR_MESSAGE egy releváns hibaüzenetet ad vissza, függetlenül attól, hogy hányszor fut, vagy hol fut a CATCH blokk hatókörén belül. Ez ellentétben áll egy olyan függvénnyel, mint a @@ERROR, amely csak egy hibaszámot ad vissza az utasításban, közvetlenül azt követően, amely hibát okoz.
CATCH Beágyazott blokkokban ERROR_MESSAGE az adott blokk CATCH hatókörére CATCH vonatkozó hibaüzenet jelenik meg. Például egy CATCH külső TRY blokkja... A CATCH szerkezet belső TRY...CATCH szerkezettel rendelkezhet. A belső CATCH blokkon belül a belső ERROR_MESSAGE blokkot CATCH meghívó hiba üzenetét adja vissza. Ha ERROR_MESSAGE a külső CATCH blokkban fut, a külső CATCH blokkot meghívó hiba üzenetét adja vissza.
Példák
Egy. ERROR_MESSAGE használata CATCH blokkban
Ez a példa egy olyan utasítást SELECT mutat be, amely nulladik osztási hibát eredményez. A CATCH blokk a hibaüzenetet adja vissza.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Itt van az eredmények összessége.
-----------
(0 row(s) affected)
ErrorMessage
----------------------------------
Divide by zero error encountered.
(1 row(s) affected)
B. ERROR_MESSAGE használata CATCH blokkban más hibakezelő eszközökkel
Ez a példa egy olyan utasítást SELECT mutat be, amely nulladik osztási hibát eredményez. A hibaüzenet mellett a CATCH blokk a hibával kapcsolatos információkat is visszaadja.
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
Itt van az eredmények összessége.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ---------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Lásd még:
sys.messages (Transact-SQL)
MEGPRÓBÁL... 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)
Hibák és események referenciája (adatbázismotor)