在sql中我设置列表的类型时没有设置为空,还有主键都设置了,为啥在ASP中输入的数据还是可以插入空值的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在sql中我设置列表的类型时没有设置为空,还有主键都设置了,为啥在ASP中输入的数据还是可以插入空值的相关的知识,希望对你有一定的参考价值。

本来主键就是空值!

引用上边的,sql中主键是不为空的,除非是复合主键,当然,复合主键必须有一个不为空。
在回到刚才的问题,软件中的列表控件当未选值时,它的值是“”,并不是空(注意,他是空,并不是NULL)。所以插入到数据库是可以的。当然,也有可能是asp代码获取下拉列表的值时有错误,导致它的值是默认的即“”。
参考技术A 你在数据库中看的是不是null这个值?如果是null并不是空,只是你这个字段的值为null,并不是空。
你要在看下,如果真是空值,是不是设置为主键的值为空?
参考技术B ”没有设置为空“
数据库一般都是默认为可空的。如果你没有指定not null,那它就是nullable的。
所以你若不想让页面插入空值进去,就要修改表结构,将那个字段定义为not null的
参考技术C 绑定位置不对,把绑定放在语句最后就好 参考技术D ASP 是前端配置,SQL 在后台,前台输入数据但不能转到后台

怎样将ms sql的主键设置为每次自增加1

我是在数据库建好了的,但是最后发现要将改为自增的,该怎么做

1.首先,待设置的字段类型一定要是int型的,否则不能设置“标识规范”。
2.打开SQL Server,连接数据库,找到目标表,右键,然后点击“设计”。
3.单击主键列(或其他需要设置的数据类型为int的列),然后在下方“列属性”中找到“标识规范”,展开。
4.在(是标识)下拉栏中选择“是”,然后设置“标识增量”(递增量)和”标识种子“(初始数),分别为1
5.保存目标表即可。
参考技术A

数据库建立好以后。在左边选择数据库列表中选择需要修改的数据库。然后点击“表”在右边该数据库表中选择你需要修改的表 右键选择“设计表”然后选中需要修改的字段 把“自动增长勾上”保存后退出即可

参考技术B 右键表名,选设计表,选中主键列,在下面的标识选项中选择“是”本回答被提问者采纳 参考技术C 用identity
create table T(ID int identity(1,1),Name nvarchar(100))

以上是关于在sql中我设置列表的类型时没有设置为空,还有主键都设置了,为啥在ASP中输入的数据还是可以插入空值的的主要内容,如果未能解决你的问题,请参考以下文章

怎样将ms sql的主键设置为每次自增加1

SQL 插入语句要求主键输入不能重复不能为空 sql语句怎么写

求大神解决,mybatis插入数据报id为空

sql server建表时怎么设置ID字段自增

SQL中主键的使用

SQL Server 2000中如何设置自增主键?