ERROR_MESSAGE (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲
此函式會傳回造成執行 TRY...CATCH 建構的 CATCH 區塊之錯誤的訊息文字。
語法
ERROR_MESSAGE ( )
傳回型別
nvarchar(4000)
傳回值
在 CATCH 區塊中呼叫時,ERROR_MESSAGE
會傳回造成執行 CATCH
區塊之錯誤訊息的完整文字。 文字包括提供給任何可替代參數的值;例如,長度、物件名稱或次數。
在 CATCH 區塊範圍之外呼叫時,ERROR_MESSAGE
會傳回 NULL。
備註
ERROR_MESSAGE
支援在 CATCH 區塊範圍內的任何位置呼叫。
不論執行多少次,或在 CATCH
區塊範圍內的哪個位置執行,ERROR_MESSAGE
都會傳回相關的錯誤訊息。 這有別於 @@ERROR 之類的函式,其只會在緊接於發生錯誤的陳述式之後的陳述式中,傳回錯誤號碼。
在巢狀 CATCH
區塊中,ERROR_MESSAGE
會參考該 CATCH
區塊之 CATCH
區塊範圍特定的錯誤訊息。 例如,外部 TRY...CATCH 建構的 CATCH
區塊可能會有內部 TRY...CATCH
建構。 在該內部 CATCH
區塊內,ERROR_MESSAGE
會傳回叫用內部 CATCH
區塊之錯誤的訊息。 如果 ERROR_MESSAGE
是在外部 CATCH
區塊中執行,它會傳回叫用該外部 CATCH
區塊之錯誤的訊息。
範例
A. 在 CATCH 區塊中使用 ERROR_MESSAGE
此範例會顯示產生除以零之錯誤的 SELECT
陳述式。 CATCH
區塊會傳回錯誤訊息。
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
結果集如下所示。
-----------
(0 row(s) affected)
ErrorMessage
----------------------------------
Divide by zero error encountered.
(1 row(s) affected)
B. 在含有其他錯誤處理工具的 CATCH 區塊中使用 ERROR_MESSAGE
此範例會顯示產生除以零之錯誤的 SELECT
陳述式。 除了錯誤訊息,CATCH
區塊也會傳回該錯誤的相關資訊。
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
結果集如下所示。
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ---------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
另請參閱
sys.messages (Transact-SQL)
TRY...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)
錯誤和事件參考 (Database Engine)