避免用户为SQL Server中的Stored过程提供null值

时间:2015-07-03 14:45:50

标签: sql sql-server stored-procedures

我很好奇为什么这不起作用:

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

它显示'不正确的语法为null'第一行。

[我不想让我的用户向SP提供空值,因此试图明确避免使用相同的内容。]

1 个答案:

答案 0 :(得分:1)

此功能是通过Natively Compiled Stored Procedures在SQL Server 2014中引入的。如果您还没有使用2014,则必须采用其他预防方法:

  • 阻止它在代码/应用程序逻辑中访问数据库(通常我们无法访问此代码)
  • 将SP的第一部分设为空检查并中断或抛出错误(如果为空)
  • 有太多选择继续......

参考:https://msdn.microsoft.com/en-us/library/dn452286(v=sql.120).aspx