データベース エンジン エラーの重大度Database Engine Error Severities

適用対象:○SQL Server XAzure SQL DatabaseXAzure SQL Data Warehouse XParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

SQL Server データベース エンジンSQL Server Database Engineによってエラーが発生した場合、 SQL ServerSQL Serverに発生した問題の種類がエラーの重大度によって示されます。When an error is raised by the SQL Server データベース エンジンSQL Server Database Engine, the severity of the error indicates the type of problem encountered by SQL ServerSQL Server.

重大度レベルLevels of Severity

次の表は、 SQL Server データベース エンジンSQL Server Database Engineによって発生したエラーの重大度レベルについて示しています。The following table lists and describes the severity levels of the errors raised by the SQL Server データベース エンジンSQL Server Database Engine.

重大度レベルSeverity level [説明]Description
0-90-9 ステータス情報を返すか、重大ではないエラーを報告する情報メッセージです。Informational messages that return status information or report errors that are not severe. 重大度 0 ~ 9 のシステム エラーが データベース エンジンDatabase Engine によって発生することはありません。The データベース エンジンDatabase Engine does not raise system errors with severities of 0 through 9.
1010 ステータス情報を返すか、重大ではないエラーを報告する情報メッセージです。Informational messages that return status information or report errors that are not severe. 互換性の理由から、呼び出し側アプリケーションにエラー情報を返す前に データベース エンジンDatabase Engine によって重大度 10 から重大度 0 に変換されます。For compatibility reasons, the データベース エンジンDatabase Engine converts severity 10 to severity 0 before returning the error information to the calling application.
11-1611-16 ユーザーが訂正できるエラーを示します。Indicate errors that can be corrected by the user.
1111 指定したオブジェクトまたはエンティティが存在しないことを示します。Indicates that the given object or entity does not exist.
1212 特別のクエリ ヒントのためロックを使用しないクエリに対する特別な重大度です。A special severity for queries that do not use locking because of special query hints. 一貫性を保証するロックが使用されないため、これらのステートメントによって実行される読み取り操作でデータの一貫性が損なわれる場合があります。In some cases, read operations performed by these statements could result in inconsistent data, since locks are not taken to guarantee consistency.
1313 トランザクションのデッドロック エラーを示します。Indicates transaction deadlock errors.
1414 権限の拒否などのセキュリティに関係するエラーを示します。Indicates security-related errors, such as permission denied.
1515 Transact-SQLTransact-SQL コマンドの構文エラーを示します。Indicates syntax errors in the Transact-SQLTransact-SQL command.
1616 ユーザーが訂正できる一般的なエラーを示します。Indicates general errors that can be corrected by the user.
17-1917-19 ユーザーが訂正できないソフトウェアのエラーを示します。Indicate software errors that cannot be corrected by the user. システム管理者に問題を報告してください。Inform your system administrator of the problem.
1717 ステートメントにより、 SQL ServerSQL Server がリソース (メモリ、ロック、またはデータベース用ディスク領域) を使い果たしたか、システム管理者が設定した制限を超えたことを示します。Indicates that the statement caused SQL ServerSQL Server to run out of resources (such as memory, locks, or disk space for the database) or to exceed some limit set by the system administrator.
1818 データベース エンジンDatabase Engine ソフトウェアの問題を示します。ただし、ステートメントによって実行は完了し、 データベース エンジンDatabase Engine のインスタンスへの接続は維持されます。Indicates a problem in the データベース エンジンDatabase Engine software, but the statement completes execution, and the connection to the instance of the データベース エンジンDatabase Engine is maintained. 重大度レベル 18 のメッセージが発生した場合は、必ずシステム管理者に報告してください。The system administrator should be informed every time a message with a severity level of 18 occurs.
1919 構成できない データベース エンジンDatabase Engine の制限を超えたため、現在のバッチ プロセスが終了させられたことを示します。Indicates that a nonconfigurable データベース エンジンDatabase Engine limit has been exceeded and the current batch process has been terminated. 重大度レベル 19 以上のエラー メッセージは、現在のバッチの実行を停止します。Error messages with a severity level of 19 or higher stop the execution of the current batch. 重大度レベル 19 のエラーの発生はまれですが、発生した場合はシステム管理者またはご購入先で修正する必要があります。Severity level 19 errors are rare and must be corrected by the system administrator or your primary support provider. 重大度レベル 19 のメッセージが発生した場合は、システム管理者に問い合わせてください。Contact your system administrator when a message with a severity level 19 is raised. 重大度レベル 19 ~ 25 のエラー メッセージは、エラー ログに書き込まれます。Error messages with a severity level from 19 through 25 are written to the error log.
20-2420-24 システムの問題を示します。これらは重大なエラーで、ステートメントまたはバッチを実行する データベース エンジンDatabase Engine タスクは実行できなくなります。Indicate system problems and are fatal errors, which means that the データベース エンジンDatabase Engine task that is executing a statement or batch is no longer running. タスクは何が起きたのかを記録し、その後終了します。The task records information about what occurred and then terminates. ほとんどの場合、 データベース エンジンDatabase Engine のインスタンスへのアプリケーション接続も終了します。In most cases, the application connection to the instance of the データベース エンジンDatabase Engine may also terminate. この問題が発生すると、問題によっては、アプリケーションの再接続ができない場合があります。If this happens, depending on the problem, the application might not be able to reconnect.

この範囲のエラー メッセージは、同じデータベースのデータにアクセスするすべてのプロセスに影響し、データベースまたはオブジェクトに損傷があったことを示します。Error messages in this range can affect all of the processes accessing data in the same database and may indicate that a database or object is damaged. 重大度レベル 19 ~ 24 のエラー メッセージは、エラー ログに書き込まれます。Error messages with a severity level from 19 through 24 are written to the error log.
2020 ステートメントに問題が発生したことを示します。Indicates that a statement has encountered a problem. この問題は現在のタスクにのみ影響するので、データベース自体が損傷している可能性はありません。Because the problem has affected only the current task, it is unlikely that the database itself has been damaged.
2121 現在のデータベース内のすべてのタスクに影響する問題が発生したことを示します。ただし、データベース自体が損傷している可能性はありません。Indicates that a problem has been encountered that affects all tasks in the current database, but it is unlikely that the database itself has been damaged.
2222 メッセージに示されたテーブルまたはインデックスが、ソフトウェアまたはハードウェアの問題によって損傷していることを示します。Indicates that the table or index specified in the message has been damaged by a software or hardware problem.

重大度レベル 22 のエラーはまれにしか発生しません。Severity level 22 errors occur rarely. このエラーが発生した場合は、DBCC CHECKDB を実行して、データベース内の他のオブジェクトも損傷しているかどうかを判断します。If one occurs, run DBCC CHECKDB to determine whether other objects in the database are also damaged. 問題がバッファー キャッシュ内だけで発生し、ディスク自体には問題がないこともあります。The problem might be in the buffer cache only and not on the disk itself. 問題がない場合、 データベース エンジンDatabase Engine のインスタンスを再起動することで解決できます。If so, restarting the instance of the データベース エンジンDatabase Engine corrects the problem. 作業を続行するには、 データベース エンジンDatabase Engineのインスタンスに再接続する必要があります。それ以外の場合は、DBCC を使用して問題を修復します。To continue working, you must reconnect to the instance of the データベース エンジンDatabase Engine; otherwise, use DBCC to repair the problem. 場合によっては、データベースの復元が必要です。In some cases, you may have to restore the database.

データベース エンジンDatabase Engine のインスタンスを再起動しても問題が解決しない場合は、ディスクに問題があります。If restarting the instance of the データベース エンジンDatabase Engine does not correct the problem, then the problem is on the disk. エラー メッセージで示されているオブジェクトを破棄することで、問題が解決する場合があります。Sometimes destroying the object specified in the error message can solve the problem. たとえば、 データベース エンジンDatabase Engine のインスタンスが、非クラスター化インデックス内で長さ 0 の行を見つけたことをメッセージが報告している場合、インデックスをいったん削除し、再構築します。For example, if the message reports that the instance of the データベース エンジンDatabase Engine has found a row with a length of 0 in a nonclustered index, delete the index and rebuild it.
2323 ハードウェアまたはソフトウェアの問題によって、データベース全体の整合性に疑いがあることを示します。Indicates that the integrity of the entire database is in question because of a hardware or software problem.

重大度レベル 23 のエラーはまれにしか発生しません。Severity level 23 errors occur rarely. このエラーが発生した場合は、DBCC CHECKDB を実行し、損傷の範囲を調べます。If one occurs, run DBCC CHECKDB to determine the extent of the damage. 問題がキャッシュ内でのみ発生し、ディスク自体には問題がないこともあります。The problem might be in the cache only and not on the disk itself. 問題がない場合、 データベース エンジンDatabase Engine のインスタンスを再起動することで解決できます。If so, restarting the instance of the データベース エンジンDatabase Engine corrects the problem. 作業を続行するには、 データベース エンジンDatabase Engineのインスタンスに再接続する必要があります。それ以外の場合は、DBCC を使用して問題を修復します。To continue working, you must reconnect to the instance of the データベース エンジンDatabase Engine; otherwise, use DBCC to repair the problem. 場合によっては、データベースの復元が必要です。In some cases, you may have to restore the database.
2424 メディアの障害を示します。Indicates a media failure. システム管理者がデータベースを復元する必要がある場合があります。The system administrator may have to restore the database. また、場合によっては、ハードウェア ベンダーに相談する必要もあります。You may also have to call your hardware vendor.

ユーザー定義のエラー メッセージの重大度User-Defined Error Message Severity

sp_addmessage を使用して、重大度 1 ~ 25 のユーザー定義のエラー メッセージを sys.messages カタログ ビューに追加することができます。sp_addmessage can be used to add user-defined error messages with severities from 1 through 25 to the sys.messages catalog view. これらのユーザー定義のエラー メッセージは、RAISERROR で使用することができます。These user-defined error messages can be used by RAISERROR. 詳細については、「sp_addmessage (Transact-SQL)」を参照してください。For more information, see sp_addmessage (Transact-SQL).

RAISERROR を使用して、重大度レベル 1 ~ 25 のユーザー定義のエラー メッセージを生成することができます。RAISERROR can be used to generate user-defined error messages with severities from 1 through 25. RAISERROR は、 sys.messages カタログ ビューに格納されているユーザー定義のエラー メッセージを参照することも、メッセージを動的に作成することもできます。RAISERROR can reference a user-defined error message stored in the sys.messages catalog view or build a message dynamically. エラーの発生中に、sys.messages にあるユーザー定義エラー メッセージを使用する場合、RAISERROR で指定された重大度は、sys.messages で指定された重大度より優先されます。When using the user-defined error message in sys.messages while generating an error, the severity specified by RAISERROR overrides the severity specified in sys.messages. 詳細については、「RAISERROR (Transact-SQL)」を参照してください。For more information, see RAISERROR (Transact-SQL).

エラーの重大度と TRY...CATCHError Severity and TRY…CATCH

TRY...CATCH 構造は、データベース接続を終了しない、重大度が 10 を超えるすべての実行エラーを検出します。A TRY…CATCH construct catches all execution errors with severity greater than 10 that do not terminate the database connection.

重大度 0 ~ 10 のエラーは情報メッセージであるため、TRY...CATCH 構造の CATCH ブロックからのジャンプは実行されません。Errors with severity from 0 through 10 are informational messages and do not cause execution to jump from the CATCH block of a TRY…CATCH construct.

接続が終了すると実行は中断されるため、データベース接続を終了させるエラー (通常の場合、重大度 20 ~ 25 のエラー) は CATCH ブロックでは処理されません。Errors that terminate the database connection, usually with severity from 20 through 25, are not handled by the CATCH block because execution is aborted when the connection terminates.

詳細については、「 TRY...CATCH (Transact-SQL)に発生した問題の種類がエラーの重大度によって示されます。For more information, see TRY...CATCH (Transact-SQL).

エラーの重大度の取得Retrieving Error Severity

システム関数 ERROR_SEVERITY を使用して、TRY...CATCH 構造の CATCH ブロックを実行したエラーの重大度を取得することができます。The ERROR_SEVERITY system function can be used to retrieve the severity of the error that caused the CATCH block of a TRY…CATCH construct to be run. CATCH ブロックの範囲外で呼び出された場合、ERROR_SEVERITY は NULL を返します。ERROR_SEVERITY returns NULL if called outside the scope of a CATCH block. 詳細については、「ERROR_SEVERITY (Transact-SQL)」を参照してください。For more information, see ERROR_SEVERITY (Transact-SQL).

参照See Also

データベース エンジン エラーについて Understanding Database Engine Errors
sys.messages (Transact-SQL) sys.messages (Transact-SQL)
システム関数 (Transact-SQL) System Functions (Transact-SQL)
TRY...CATCH (Transact-SQL)TRY...CATCH (Transact-SQL)