Как установить номер SQLException - PullRequest
1 голос
/ 07 декабря 2011

У меня возникла проблема при настройке SqlException.Number

На моем сохраненном процессе возникает ошибка

--@number = 50001

RAISERROR(@number, 16, 1) -

Я должен ожидать, что Error_Number() должно быть@number но я всегда получаю 18054

Что-то не так с моим RAISERROR?

Ответы [ 2 ]

3 голосов
/ 07 декабря 2011

Проверьте таблицу 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.
0 голосов
/ 07 декабря 2011

Есть одно маленькое предостережение: в этом случае вы не можете предоставить сообщение самостоятельно.Но это можно обойти, добавив дополнительные% s в вызове sp_addmessage или изменив все сопоставленные сообщения на свой собственный шаблон и указав правильные параметры в вызове подъема ошибки.

Проверьте здесь для получения дополнительной информации: SQL Server: исключение Rethrow с исходным номером исключения

RAISERROR может ссылаться на пользовательское сообщение, хранящееся в sys.messages каталог посмотреть или построить сообщение динамически.

Убедитесь, что ваше сообщение об ошибке существует или не используется:

select * from sys.messages

Если его не существует, используйте sp_addmessage длядобавьте пользовательские сообщения об ошибках и sp_dropmessage для удаления пользовательских сообщений об ошибках.

для получения дополнительной информации следуйте документации RaiseError .

...