Код возврата SQL Server -6, что это значит? - PullRequest
3 голосов
/ 09 августа 2011

У меня есть хранимая процедура, которая работает без проблем, то есть код возврата равен 0. В некоторых случаях я RAISERROR определяет пользовательскую ошибку (> 50000). В этих случаях доход равен -6. Мне просто любопытно, что означает -6? Я не устанавливаю код возврата в процедуре, поэтому этот номер генерируется SQL Server (системой).

Я нашел это утверждение:

Имеют ли эти отрицательные числа какое-либо значение, немного трудно сказать. Раньше было так, что возвращаемые значения от -1 до -99 были зарезервировано для сгенерированных системой возвращаемых значений, а Books Online для более ранние версии SQL Server указывали значения для значений от -1 до -14. Однако Books Online для SQL 2000 ничего не говорит о таких оговорок, и не объясняет, что будет означать от -1 до -14.

Кто-нибудь знает "скрытые" значения этих кодов возврата?

Я использую SQL Server 2008 R2.

1 Ответ

7 голосов
/ 10 августа 2011

ОК, я нашел это ...

Возвращаемое значение из сохраненного процесса при ошибке

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.

Спасибо всем за их вклад.

...