2012-11-27 10 views

答えて

18
use master 
select * from sysmessages 
+0

メッセージを取得するためにデータベースを見ることは本当にオプションではありません。多分、データベースはもう利用できません。だから私は実際にコードで処理できるエラーコードのリストが必要です。 – Antineutrino

+0

データベース内のエラーメッセージのリストは静的リストです。 SQL Serverのインストールでクエリを実行すると、エラーコードと関連するメッセージの完全な一覧を表示できます。そのリストのmessage_idsをコードで使用して、あなたが望むように処理することができます。 – Travis

3

インターネットで個々のコードのリストが見つかりません。しかし、私はMSDNで重大度レベルhereのリストを見つけました。それらは次の通りです:

重大度レベル/説明

  • 0-9:ステータス情報を返すか、厳しくない エラーを報告情報メッセージ。データベースエンジンは、重大度0〜9のシステム エラーを発生させません。
  • 10:情報メッセージ は、重大ではないエラーまたはステータス情報を返します。 互換性の理由から、データベースエンジンは重大度10 を重大度0に変換してから、エラー情報を呼び出し元の アプリケーションに返します。
  • 11-16: ユーザーが修正できるエラーを示します。
  • 11:指定されたオブジェクトまたはエンティティが存在しないことを示します。
  • 12: 特別なクエリのヒントのためにロックを使用しないクエリの特別な重大度。場合によっては、 によって実行される読み取り操作では、一貫性を保証するためにロックが取られていないので、これらのステートメントはデータの矛盾を招く可能性があります。
  • 13:トランザクション デッドロックエラーを示します。
  • 14:許可が拒否されたなど、セキュリティ関連のエラーが表示されます( など)。
  • 15:Transact-SQL コマンドの構文エラーを示します。
  • 16: ユーザーが修正できる一般的なエラーを示します。
  • 17-19: ユーザーが修正できないソフトウェアエラーを示します。システム管理者に問題を通知してください。
  • 17:この文によって、SQL Serverのリソースが不足した( メモリ、ロック、またはデータベースのディスク容量など)か、またはシステム管理者が設定した の制限を超えていることを示しています( )。
  • 18: データベースエンジンソフトウェアの問題を示しますが、ステートメントの実行が完了し、 データベースエンジンのインスタンスへの接続が維持されています。 の重大度18のメッセージが発生するたびに、システム管理者に通知する必要があります。
  • 19:構成不可能な データベースエンジンの制限を超え、現在のバッチプロセス が終了したことを示します。重大度が19または 以上のエラーメッセージは、現在のバッチの実行を停止します。重大度19 のエラーはまれであり、システム管理者または主サポートプロバイダ によって解決される必要があります。 重大度19のメッセージが発生した場合は、システム管理者に連絡してください。重大度が19〜25の のエラーメッセージがエラーログに書き込まれます。
  • 20-24:システムの問題を示し、致命的なエラーであることを意味します。つまり、 は、ステートメントまたはバッチを実行しているデータベースエンジンタスクが実行されていないことを意味します。このタスクは、 が何が起こったかに関する情報を記録し、終了します。ほとんどの場合、データベースエンジンのインスタンスへの接続 アプリケーションも終了することがあります。 この場合、問題によっては、アプリケーションが再接続できない可能性があります。この範囲のエラーメッセージは、同じデータベース内のデータにアクセスするプロセスのすべてに に影響を与え、 にデータベースまたはオブジェクトが壊れていることを示している可能性があります。重大度が (19〜24)のエラーメッセージがエラーログに書き込まれます。
  • 20: という文で問題が発生したことを示します。問題は が現在のタスクにのみ影響を与えているため、データベース 自体が破損している可能性は低いです。
  • 21: が現行のデータベースのすべてのタスクに影響を与える問題が発生したが、データベース自体が損傷している可能性は低いことを示します( )。
  • 22: によってメッセージに指定されているテーブルまたはインデックスがソフトウェアまたはハードウェアの問題によって損傷していることを示します( )。重大度22のエラーが発生することはほとんどありません。 発生した場合は、DBCC CHECKDBを実行して、データベース内の他の オブジェクトも破損しているかどうかを判断します。この問題は、バッファーキャッシュにのみ存在し、ディスク自体には存在しない可能性があります。その場合、データベースエンジンの インスタンスを再起動すると、問題が解決されます。 を続行するには、データベースエンジンのインスタンスに再接続する必要があります。 それ以外の場合は、DBCCを使用して問題を修復します。場合によっては、 データベースを復元する必要があります。 データベースエンジンのインスタンスを再起動しても問題が解決しない場合は、ディスクに という問題があります。場合によっては、エラー メッセージで指定されたオブジェクトを破棄して問題を解決できる場合があります。たとえば、データベースエンジンのインスタンスが非クラスタ化インデックスに の長さが0の行が見つかったというメッセージが と報告された場合、インデックスを削除して再構築します。
  • 23:ハードウェアまたはソフトウェアの問題のためデータベース全体の整合性が の質問であることを示します。重大度23 エラーはほとんど発生しません。発生した場合は、DBCC CHECKDBを実行して、損傷の程度を と判断します。問題はキャッシュにのみ存在し、ディスク自体には ではありません。その場合は、データベース エンジンのインスタンスを再起動すると問題が解決されます。作業を続行するには、 をデータベースエンジンのインスタンスに再接続する必要があります。それ以外の場合は、DBCCを使用して を修復してください。場合によっては、データベースを復元する必要があります。
  • 24:メディア障害を示します。システム管理者は データベースを復元する必要があります。ハードウェアベンダーに電話をしなければならない場合もあります。
3

SELECT * FROM sysmessages 
0

SQL Server 2005では、あなたは、この使用することができます上記:

SELECT * FROM sys.messages 
をすべてこの文を実行することにより、マスタDBから

他の人が述べたように、あなたも(SQL Server 2000で利用可能)を使用することができます:

SELECT * FROM sysmessages 
関連する問題