2009-07-14 15 views
62

私の最高のGoogleの結果はthisた:11以下異なるRAISERROR重大度はどういう意味ですか?

  • 11-16が16以上使用
  • のために用意されていた警告、ないエラーがシステムエラー
  • されている11の間には行動の違いはありません-16

ただし、BOLからは、「0から18の重大度はどのユーザーでも指定できます」

私の特定のストアドプロシージャでは、エラーを.Netクライアントアプリケーションに戻したいので、11-18の間の重大度レベルがこのトリックを行うように見えます。レベルのそれぞれが何を意味するのか、どのように使用すべきかについて、権威ある情報を持っている人はいますか?

+2

他のバージョンはわかりませんが、SQL Server 2008では重大度16が**実行を終了しないことに非常に驚きました。 –

+0

私は、試行錯誤後に私はレベル= 13を使用して、同じトリックをDelphiアプリケーションに使用します。このように実行は停止されません(私はユーザーに情報を表示するためにトリガーでエラーを発生させます)。もちろん、それは "ひどい悪い習慣"ですが効果的です。 – LaBracca

答えて

91

Database Engine Severity Levels

あなたは16を返すべきデフォルトでは、最も使用されるエラーレベルです:

は、ユーザが 修正することができ、一般的なエラーを示します。

は、リソースの問題のようなものは、より深刻なエラーを示し、17-18返さないでください:

がユーザーによって修正されない できるソフトウェアエラーを示します。問題のシステム管理者に と連絡してください。

各レベル(14 - セキュリティアクセス、15 - 構文エラー、13 - デッドロックなど)に特別な意味があるため、11-15も返さないようにしてください。

レベル16は実行を終了しません。

警告をログに記録して実行を続行する場合は、代わりに10未満の重大度を使用してください。

+0

MSDNのリンクの種類はすべて言っています - 情報はBOLのすぐそこにあり、以前は見たことがありませんでした。ありがとう! –

+0

google ... -social site:msdn.microsoft.comはあなたの友人です:) –

+1

「デフォルト」と言えば、パラメータを渡してRAISERRORを呼び出すと、エラーレベル16が使用されます。つまり、キャッチブロックにキャッチされますか? – Triynko

関連する問題