Megosztás a következőn keresztül:


ERROR_MESSAGE (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-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)