2015-07-03 2 views
3

мне интересно, почему это не будет работать:Избегай пользователь, снабжающие нулевое значение хранимой процедуры в SQL Server

create procedure test 
    @id int not null, 
    @feature bit not null 

Это показывает «Неправильный синтаксис утративший» для первой строки.

[Я не хочу, чтобы мои пользователи поставить нулевое значение в SP и, следовательно, пытаясь явно избежать такой же.]

+9

Вам нужно для проверки внутри хранимой процедуры и возврата ошибки. –

+0

@ GordonLinoff: Спасибо. Но нет ли способа остановить загрузку пользователями нулевого значения в SP при запуске? –

+0

К сожалению, @GordonLinoff прав. Вы должны сделать это в своем коде SP. Вы можете проверить, является ли какой-либо из параметров NULL, а затем использовать «RAISERROR» для исключения исключений. Вот пример: http://www.sqlservercentral.com/Forums/Topic560409-149-1.aspx –

ответ

1

Эта функция была введена в SQL Server 2014 путем Врожденная Составитель Хранится Процедуры. Если вы еще не используете 2014 год, вам придется прибегнуть к другим методам предотвращения:

  • Остановите его даже от попадания в базу данных в коде/логике приложения (часто у нас нет доступа к это хотя)
  • Сделать первую часть вы SP проверки нулевой и вспыхнуть или выдаст ошибку, если она равна нулю
  • Слишком много вариантов, чтобы продолжать идти ...

Ссылка: https://msdn.microsoft.com/en-us/library/dn452286(v=sql.120).aspx

Смежные вопросы