データベース エンジン エラーについて
次の表は、Microsoft SQL Server データベース エンジンによって発生したエラーの属性について示しています。
属性 |
説明 |
---|---|
エラー番号 |
エラー メッセージには、それぞれ一意なエラー番号が付いています。 |
エラー メッセージ文字列 |
エラー メッセージには、エラーの原因についての診断情報が含まれています。 多くのエラー メッセージには、エラーが発生したオブジェクト名などの情報を挿入するための置換変数が用意されています。 |
重大度 |
重大度レベルは、エラーの重大度を示します。 1、2 など重大度レベルが低いエラーは情報メッセージ、または低レベル警告です。 重大度レベルが高いエラーは、できるだけ早く対処することが推奨される問題であることを示します。 重大度に関する詳細については、「データベース エンジン エラーの重大度」を参照してください。 |
状態 |
エラー メッセージがデータベース エンジンのコード内の複数の場所で生成される場合があります。 たとえば、複数の異なる条件に対して 1105 エラーが生成されることがあります。 エラーを生成する特定の条件はそれぞれ一意の状態コードを割り当てます。 Microsoft のサポート技術情報など既知の問題に関する情報が含まれたデータベースを参照する場合は、状態番号を使用して、記録された問題と検出されたエラーが同じかどうかを判断することができます。 たとえば、サポート技術情報の記事が状態 2 の 1105 エラーについて説明しており、受け取った 1105 エラー メッセージが状態 3 の場合、このエラーは記事で報告されているエラーとは原因が異なる可能性が高いと考えられます。 Microsoft のサポート エンジニアがこのエラーの状態コードを使用して、エラー コードが生成されたソース コード内の場所を探すこともできます。 この情報が、問題に対する他の診断方法のヒントになる場合もあります。 |
プロシージャ名 |
エラーが発生したストアド プロシージャまたはトリガーの名前です。 |
行番号 |
バッチ、ストアド プロシージャ、トリガー、または関数内のどのステートメントでエラーが発生したかを示します。 |
データベース エンジンのインスタンス内のすべてのシステム エラー メッセージおよびユーザー定義のエラー メッセージは、sys.messages カタログ ビューに含まれています。 RAISERROR ステートメントを使用すると、アプリケーションにユーザー定義エラーを返すことができます。
Microsoft .NET Framework SQLClient 名前空間、ActiveX Data Objects (ADO)、OLE DB、Open Database Connectivity (ODBC) などのデータベース API はすべて、基本的なエラー属性を報告します。 この情報には、エラー番号およびメッセージ文字列が含まれています。 ただし、すべての API で他のすべてのエラー属性が報告されるわけではありません。
TRY...CATCH 構造の TRY ブロックの適用範囲内で発生したエラーの詳細は、関連付けられた CATCH ブロックの適用範囲内で ERROR_LINE、ERROR_MESSAGE、ERROR_NUMBER、ERROR_PROCEDURE、ERROR_SEVERITY、ERROR_STATE などの関数を使用して Transact-SQL コードで取得することができます。 詳細については、「TRY...CATCH (Transact-SQL)」を参照してください。
使用例
次の例では、sys.messages カタログ ビューにクエリを実行し、英語テキスト (1033) が含まれたデータベース エンジン内のシステム エラー メッセージおよびユーザー定義のエラー メッセージがすべて記載された一覧を返します。
SELECT
message_id,
language_id,
severity,
is_event_logged,
text
FROM sys.messages
WHERE language_id = 1033;
詳細については、「sys.messages (Transact-SQL)」を参照してください。