Попытайтесь RAISERROR в T-SQL

Вы не можете получить доступ к флагу переполнения от C/C++.

я не соглашаюсь с этим. Вы могли записать, что некоторые встраивают asm и используют jo (переполнение перехода), инструкция, принимающая Вас, находится на x86 для захвата переполнения. Конечно, Вы, больше кодируете не было бы портативным к другой архитектуре.

взгляд info as и info gcc.

20
задан StevenMcD 16 July 2009 в 16:25
поделиться

3 ответа

Это потому, что серьезность RAISERROR недостаточно высока, она должна быть от 11 до 19, как описано здесь

например

RAISERROR ('Errors found, please fix these errors and retry', 16, 2) WITH SETERROR
35
ответ дан 29 November 2019 в 23:11
поделиться

I think you need to raise an error with a severity level higher than 10 for it to be caught, e.g.

RAISERROR ('Errors found', 11, 2) WITH SETERROR
12
ответ дан 29 November 2019 в 23:11
поделиться

Из MSDN


severity

Определенный пользователем уровень серьезности, связанный с этим сообщением. Уровни серьезности от 0 до 18 могут использоваться любым пользователем. Уровни серьезности от 19 до 25 используются только членами фиксированной серверной роли sysadmin. Для уровней серьезности от 19 до 25 требуется опция WITH LOG.

Внимание Уровни серьезности от 20 до 25 считаются фатальными. При обнаружении фатального уровня серьезности клиентское соединение разрывается после получения сообщения, а ошибка регистрируется в журнале ошибок и журнале приложения.


Попробуйте вместо этого:

RAISERROR ('Errors found, please fix these errors and retry', 1, 2) WITH SETERROR
RETURN
5
ответ дан 29 November 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: