web-dev-qa-db-ja.com

すべてのSQL Server 2012エラーコードの概要はありますか?

SQLGetDiagRec はネイティブエラーコードを返します。 SQL Server 2012のエラーコードの概要はどこにありますか? MSDNで何も見つかりませんでした。

18
Antineutrino

インターネットで個々のコードのリストを見つけることができません。しかし、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:メディア障害を示します。システム管理者がデータベースを復元する必要がある場合があります。ハードウェアベンダーに連絡する必要がある場合もあります。
10
Keith
use master
select * from sysmessages
34
David Brabant

MS SQL Server 2008 R2のコードを見つけましたが、それらのほとんどは以降のバージョンに当てはまります。 http://technet.Microsoft.com/en-us/library/cc645603(v = sql.105) .aspx

私も自分でリストを探していて、次のステートメントを実行することで、マスターDBからすべてを表示できることがわかりました。

SELECT * FROM sysmessages
3
Jose

SQL Server 2005以降では、これを使用できます。

SELECT * FROM sys.messages

他の人が述べたように、次のものも使用できます(SQL Server 2000で利用可能):

SELECT * FROM sysmessages
0
alienriver49