SQL Server - 'NOT NULL'主键上的约束冗余?

时间:2011-11-09 01:01:41

标签: sql constraints

在下面的SQL代码中,'NOT NULL'是多余的,因为f_ID是主键,因此对于任何记录都不能为空?

CREATE TABLE t_Activities(
    f_ID varchar(50) NOT NULL,
    PRIMARY KEY (f_ID))

3 个答案:

答案 0 :(得分:4)

如果稍后删除主键约束怎么办?该列是否应该允许空值?是的,不,也许吧?这两个约束是不同的。 PK约束要求一个NOT NULL,但不暗示一个。

答案 1 :(得分:1)

这可能是多余的,但我更喜欢这种创建primary key(或Identity列)的方法。它表明制作表格的人理解并打算将该列设为NOT NULL以及该表的Primary Key

答案 2 :(得分:0)

这是正确的。如果你有:

CREATE TABLE t_Activities( 
    f_ID varchar(50), 
    PRIMARY KEY (f_ID)) 

这将是等效的。主键约束不允许NULL s。