1

セットアップに問題がありますSqlException.Number

ストアドプロシージャでエラーが発生しています

--@number = 50001

RAISERROR(@number, 16, 1) -

私はそうあるべきだと期待するError_Number()べきです@numberが、私は常に18054を取得します

私に何か問題がありますRAISERRORか?

4

2 に答える 2

3

sys.messagesテーブルでエラーコード74601を確認します。これがユーザー定義のエラーである場合は、テーブルに追加する必要があります。

50000を超えるエラーの場合、見つからない場合はこの出力が表示されます。

Msg 18054, Level 16, State 1, Line 1
Error XXXXX, severity 16, state 1 was raised, but no message with that error number was found in sys.messages. If error is larger than 50000, make sure the user-defined message is added using sp_addmessage.
于 2011-12-07T06:56:41.653 に答える
0

小さな注意点が1つあります。この場合、自分でメッセージを提供することはできません。ただし、これは、sp_addmessage呼び出しに%sを追加するか、マップされたすべてのメッセージを独自のパターンに変更し、raiseerror呼び出しで適切なパラメーターを指定することで回避できます。

詳細については、こちらを確認してください 。SQL Server:元の例外番号で例外を再スローします

RAISERRORは、sys.messagesカタログビューに保存されているユーザー定義メッセージを参照するか、メッセージを動的に作成することができます。

エラーメッセージが存在するか、これを使用していないかを確認してください。

select * from sys.messages

存在しない場合は、を使用sp_addmessageしてユーザー定義のエラーメッセージを追加し、ユーザー定義のエラーメッセージsp_dropmessageを削除します。

詳細については、RaiseErrorのドキュメントに従ってください。

于 2011-12-07T07:06:31.690 に答える