sql - 避免用户向 SQL Server 中的存储过程提供空值

标签 sql sql-server stored-procedures

我很好奇为什么这行不通:

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

第一行显示“Incorrect syntax to be null”。

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

最佳答案

此功能是通过 native 编译存储过程在 SQL Server 2014 中引入的。如果您还没有使用 2014,您将不得不求助于其他预防方法:

  • 阻止它访问代码/应用程序逻辑中的数据库(虽然我们通常无法访问它)
  • 让你SP的第一部分为null检查,如果为null则跳出或抛出错误
  • 太多选择无法继续...

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

关于sql - 避免用户向 SQL Server 中的存储过程提供空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31209467/

相关文章:

mysql - MYSQL语言中字段级别的比较

Mysql 一个表中的多个最大值

sql - 我们应该使用哪个工具来针对 PostgreSql 执行存储过程

php - 在 PHP 中从 MySQL 存储过程获取输出值和记录集

PHP、MySQL 存储过程未按预期存储数据

mysql - 纠正mysql语法错误

mysql - 联合查询返回意外结果

sql - 在 TSQL 过程中使用 SYSNAME 数据类型

sql-server - SQL Server 距离搜索

sql-server - 压缩文件夹中的 SQL 备份