適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 分析端點
Microsoft Fabric 中的倉儲
Microsoft Fabric 中的 SQL 資料庫
如果該錯誤造成 CATCH 建構區塊 TRY...CATCH 執行,此函式會傳回錯誤發生的錯誤嚴重性值。
語法
ERROR_SEVERITY ( )
傳回類型
int
返回值
在發生錯誤的區塊中 CATCH 呼叫時, ERROR_SEVERITY 傳回導致 CATCH 區塊執行之錯誤的嚴重性值。
ERROR_SEVERITY如果在區塊範圍NULL之外呼叫 ,則會傳CATCH回 。
備註
ERROR_SEVERITY 支援在區塊範圍內 CATCH 的任何位置呼叫。
不論執行多少次,或在 ERROR_SEVERITY 區塊範圍內的哪個位置執行,CATCH 都會傳回錯誤的錯誤嚴重性值。 這與 類似 @@ERROR 的函式形成對比,此函式只會傳回緊接在造成錯誤之函式之後的語句中錯誤號碼。
ERROR_SEVERITY 通常會在巢狀 CATCH 區塊中作業。
ERROR_SEVERITY 會傳回參考該 CATCH 區塊之 CATCH 區塊範圍特定的錯誤嚴重性值。 例如, CATCH 外部 TRY...CATCH 建構的區塊可能會有內部 TRY...CATCH 建構。 在該內部 CATCH 區塊內,ERROR_SEVERITY 會傳回叫用內部 CATCH 區塊之錯誤的嚴重性值。 如果 ERROR_SEVERITY 是在外部 CATCH 區塊中執行,它會傳回叫用該外部 CATCH 區塊之錯誤的錯誤嚴重性值。
範例:Azure Synapse Analytics 和 Analytics Platform System (PDW)
A。 在 CATCH 區塊中使用ERROR_SEVERITY
此範例會顯示產生除以零之錯誤的預存程序。
ERROR_SEVERITY 會傳回該錯誤的嚴重性值。
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1 / 0;
END TRY
BEGIN CATCH
SELECT ERROR_SEVERITY() AS ErrorSeverity;
END CATCH
GO
結果集如下所示。
-----------
(0 row(s) affected)
ErrorSeverity
-------------
16
(1 row(s) affected)
B. 搭配其他錯誤處理工具,在 CATCH 區塊中使用ERROR_SEVERITY
此範例會顯示產生除以零之錯誤的 SELECT 陳述式。 預存程序會傳回錯誤的相關資訊。
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)