データベース エンジン エラーについて

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

次の表で、Microsoft SQL Server データベース エンジン によって発生したエラーの属性について説明します。

属性 説明
エラー番号 エラー メッセージには、それぞれ一意なエラー番号が付いています。
エラー メッセージ文字列 エラー メッセージには、エラーの原因についての診断情報が含まれています。 多くのエラー メッセージには、エラーが発生したオブジェクト名などの情報を挿入するための置換変数が用意されています。
重大度 重大度レベルは、エラーの重大度を示します。 1、2 など重大度レベルが低いエラーは情報メッセージ、または低レベル警告です。 重大度レベルが高いエラーは、できるだけ早く対処することが推奨される問題であることを示します。 重大度レベルの詳細については、「 データベース エンジン エラーの重大度」を参照してください。
State エラー メッセージが データベース エンジンのコード内の複数の場所で生成される場合があります。 たとえば、複数の異なる条件に対して 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 ブロックのスコープ内で発生したエラーの詳細は、Transact-SQL コードで、ERROR_LINE、ERROR_MESSAGE、ERROR_NUMBER、ERROR_PROCEDURE、ERROR_SEVERITY、ERROR_STATE などの関数を関連付けられた CATCH ブロックのスコープ内で使うことで取得できます。 詳細については、「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)」を参照してください。

参照

sys.messages (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
TRY...CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)