2011-08-09 24 views
3

問題なしで動作するストアドプロシージャがあります。つまり、戻りコードは0です。場合によっては、RAISERRORユーザー定義エラー(> 50000)が発生します。その場合、リターンは-6です。私はちょうど興味があります、-6はどういう意味ですか?このプロシージャではリターンコードを設定しないので、この番号はSQL Server(システム)で生成されます。SQL Serverリターンコード-6、それはどういう意味ですか?

私はこの文を見つけた:、これらの負の数字はどんな意味を持っているかどうか

伝えるために少し難しいです。以前のバージョンのSQL Serverの 以前のバージョンのオンラインでは、-1〜 -14の値が指定されていたため、戻り値-1〜-99は が予約済みで、システム生成の戻り値として予約されていました。ただし、SQL 2000のBooks Onlineは、 の予約については何も言及していませんし、-1から-14までの意味については説明していません。

これらのリターンコードの「隠された」意味を知っている人はいますか?

私はSQL Server 2008 R2を使用しています。

+0

[SQL Serverストアドプロシージャのリターンコードの奇妙な可能性の重複](http://stackoverflow.com/questions/2965211/sql-server-stored-procedure-return-code-oddity) – gbn

+0

@gbn - 質問は非常に似て、それが-6を返すのは奇妙で、-6が(もし何かを意味する)ものに興味があるだけです。私はリターンコードを見ていないが、将来誰かがやった場合に備えて。 –

+0

リンクと回答とコメントとリンクを確認してから、彼らは-6がどこから来るのかを教えてくれる。 – gbn

答えて

7

OK、私は

Return value from a stored proc on error

If you have a RETURN statement with an explicit return value, that is of course the return value. 

...これを見つけた。しかしそこにはRETURN文はありませんが、エラーが 実行中に発生した場合、戻り値は10のマイナス重症度であります エラーのレベルです。ゼロによる除算はレベル16なので、戻り値は-6です。 パーミッションエラーは典型的なレベル14で、戻り値は-4です。

私の場合、私が発生させたエラーの重大度は16だったので、10 - 16 = -6でした。

皆さん、ありがとうございます。

+0

説明をいただき、ありがとうございました。 –

関連する問題