セットアップに問題がありますSqlException.Number
ストアドプロシージャでエラーが発生しています
--@number = 50001
RAISERROR(@number, 16, 1) -
私はそうあるべきだと期待するError_Number()
べきです@number
が、私は常に18054を取得します
私に何か問題がありますRAISERROR
か?
セットアップに問題がありますSqlException.Number
ストアドプロシージャでエラーが発生しています
--@number = 50001
RAISERROR(@number, 16, 1) -
私はそうあるべきだと期待するError_Number()
べきです@number
が、私は常に18054を取得します
私に何か問題がありますRAISERROR
か?
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.
小さな注意点が1つあります。この場合、自分でメッセージを提供することはできません。ただし、これは、sp_addmessage呼び出しに%sを追加するか、マップされたすべてのメッセージを独自のパターンに変更し、raiseerror呼び出しで適切なパラメーターを指定することで回避できます。
詳細については、こちらを確認してください 。SQL Server:元の例外番号で例外を再スローします
RAISERRORは、sys.messagesカタログビューに保存されているユーザー定義メッセージを参照するか、メッセージを動的に作成することができます。
エラーメッセージが存在するか、これを使用していないかを確認してください。
select * from sys.messages
存在しない場合は、を使用sp_addmessage
してユーザー定義のエラーメッセージを追加し、ユーザー定義のエラーメッセージsp_dropmessage
を削除します。
詳細については、RaiseErrorのドキュメントに従ってください。