SQl2008中主键不能等于NULL,可是可以等于null,这是为啥。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQl2008中主键不能等于NULL,可是可以等于null,这是为啥。相关的知识,希望对你有一定的参考价值。

参考技术A 两张截图中,第一个“学号”为主键,很明显不允许为NULL;第二个没有设置主键,当然都允许为NULL了。至于第二个截图的第一行第一列的“学号”,这个应该是空格吧?这得你自己核实了。空格、NULL不一样,理解这个很关键。 参考技术B 1、你的理解是错误的,你说的null是字符,而你说的【NULL】应该是SQL内置的空值。
2、关系型数据库中的主键均不能为空,不管是单一列做为主键还是多列组合做为主键,都是不允许的
3、主键的概念你还不清楚,下面给你一些参考材料,你阅读后就会明白。
【主键(primary
key)是表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。一个表不能有多个主关键字,并且主关键字的列不能包含空值。主关键字是可选的,并且可在
CREATE
TABLE

ALTER
TABLE
语句中定义。】
参考技术C 不可能允许主键为null的,肯定是看错了。。。
不然MS就别卖SQL2008数据库了。。
如果真有奇迹,最好贴个截屏,他主键(primarykey,还是允许null的),俺瞻仰瞻仰

sql where条件不等于空怎么写

select *from table where a不等于空
怎么写?????

参考技术A where a <> ''
where a <> null
参考技术B where a is not null 参考技术C where isnull(a,'')<>''

如果你不能理解 那么请去SQL帮助里查询 isnull
参考技术D SQL Server Or Oracle? 第5个回答  2007-04-10 where a!=null本回答被提问者采纳

以上是关于SQl2008中主键不能等于NULL,可是可以等于null,这是为啥。的主要内容,如果未能解决你的问题,请参考以下文章

SQL中主键的使用

SQL语句如何写不等于?

oracle 不等于1怎么查?

oracle中怎么查询一列必须等于多个值

sql条件不等于0把null值也过滤掉了

“access索引或主关键字不能包含一个空 (Null)值”是啥意思?怎么解决?