字段有一个属性是可否允许该字段值为空,即可否允许该字段值为 Null,在 SQL Server 中,默认是允许为 Null 的,但是我们建议您不允许字段值为 Null。
SQL Server 2000 联机丛书有如下一段话:
重要 为了减少对已有查询或报表的维护和可能的影响,建议尽量少使用空值。对查询和数据修改语句进行规划,使空值的影响降到最小。
- Null 值不参与索引运算,就算是强制索引,也是扫描所有的索引,不利于效率的提高。
- Null 值存储需要浪费一点点空间,虽然这点空间很少。
- 不利于运算,Null 表示什么也不是,需要特殊的判断函数,不利于运算。
记得有本书,我不知道名字是不是《深度探索关系数据库——实践者的关系理论》,其作者观点也是少用或不用 Null,里面有更全面的理由。
不允许为 Null,一般可以考虑给字段增加默认值。