ERROR_SEVERITY (Transact-SQL)ERROR_SEVERITY (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

エラーが発生し、そのエラーによって TRY…CATCH 構文の CATCH ブロックが実行された場合、この関数によってエラーの重大度が返されます。This function returns the severity value of the error where an error occurs, if that error caused the CATCH block of a TRY...CATCH construct to execute.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

ERROR_SEVERITY ( )  

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

戻り値の型Return Types

intint

戻り値Return Value

エラーが発生した CATCH ブロックの中で呼び出されると、ERROR_SEVERITYCATCH ブロックの実行を引き起こしたエラーの重大度を返します。When called in a CATCH block where an error occurs, ERROR_SEVERITY returns the severity value of the error that caused the CATCH block to run.

ERROR_SEVERITY は、CATCH ブロックの範囲外で呼び出された場合に NULL を返します。ERROR_SEVERITY returns NULL if called outside the scope of a CATCH block.

解説Remarks

ERROR_SEVERITY は、CATCH ブロックのスコープ内の任意の場所で呼び出すことができます。ERROR_SEVERITY supports calls anywhere within the scope of a CATCH block..

ERROR_SEVERITY は、実行回数に関係なく、あるいは CATCH ブロックのスコープ内の実行場所に関係なく、エラーのエラー重大度を返します。ERROR_SEVERITY returns the error severity value of an error, regardless of how many times it runs or where it runs within the scope of the CATCH block. エラーが発生したステートメントの直後のステートメントのエラー番号のみを返す、@@ERROR などの関数とは対照的となります。This contrasts with a function like @@ERROR, which only returns an error number in the statement immediately following the one that causes an error.

通常、ERROR_SEVERITY は入れ子になった CATCH ブロック内で動作します。ERROR_SEVERITY typically operates in a nested CATCH block. ERROR_SEVERITY は、CATCH ブロックを参照した CATCH ブロックのスコープに固有のエラー重大度を返します。ERROR_SEVERITY returns the error severity value specific to the scope of the CATCH block that referenced that CATCH block. たとえば、外側の TRY...CATCH 構造の CATCH ブロックの中に TRY...CATCH 構造が含まれることがあります。For example, the CATCH block of an outer TRY...CATCH construct could have an inner TRY...CATCH construct. その内側の CATCH ブロック内では、ERROR_SEVERITY は内側の CATCH ブロックを呼び出したエラーの重大度を返します。Inside that inner CATCH block, ERROR_SEVERITY returns the severity value of the error that invoked the inner CATCH block. ERROR_SEVERITY が外側の CATCH ブロック内で実行される場合、外側の CATCH ブロックを呼び出したエラーの重大度を返します。If ERROR_SEVERITY runs in the outer CATCH block, it returns the error severity value of the error that invoked that outer CATCH block.

例: Azure Synapse AnalyticsAzure Synapse AnalyticsParallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse AnalyticsAzure Synapse Analytics and Parallel Data WarehouseParallel Data Warehouse

A.A. CATCH ブロックで ERROR_SEVERITY を使用するUsing ERROR_SEVERITY in a CATCH block

この例では、0 除算エラーを生成したストアド プロシージャを示します。This example shows a stored procedure that generates a divide-by-zero error. ERROR_SEVERITY はそのエラーの重大度を返します。ERROR_SEVERITY returns the severity value of that error.

BEGIN TRY  
    -- Generate a divide-by-zero error.  
    SELECT 1/0;  
END TRY  
BEGIN CATCH  
    SELECT ERROR_SEVERITY() AS ErrorSeverity;  
END CATCH;  
GO  

結果セットは次のようになります。Here is the result set.

-----------

(0 row(s) affected)

ErrorSeverity
-------------
16

(1 row(s) affected)

B.B. CATCH ブロックで ERROR_SEVERITY を他のエラー処理ツールと一緒に使用するUsing ERROR_SEVERITY in a CATCH block with other error-handling tools

この例は、0 除算エラーを生成する SELECT ステートメントを示しています。This example shows a SELECT statement that generates a divide by zero error. ストアド プロシージャは、エラーに関する情報を返します。The stored procedure returns information about the error.

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  

結果セットは次のようになります。Here is the result set.

-----------

(0 row(s) affected)

ErrorNumber ErrorSeverity ErrorState  ErrorProcedure  ErrorLine   ErrorMessage
----------- ------------- ----------- --------------- ----------- ----------------------------------
8134        16            1           NULL            4           Divide by zero error encountered.

(1 row(s) affected)

参照See Also

sys.messages (Transact-SQL) sys.messages (Transact-SQL)
TRY...CATCH (Transact-SQL) TRY...CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL) ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL) ERROR_MESSAGE (Transact-SQL)
ERROR_NUMBER (Transact-SQL) ERROR_NUMBER (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL) ERROR_PROCEDURE (Transact-SQL)
ERROR_STATE (Transact-SQL) ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL) RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)@@ERROR (Transact-SQL)
エラーとイベントのリファレンス (データベース エンジン)Errors and Events Reference (Database Engine)