唯一键可以具有的空值的数量

时间:2014-05-19 14:28:00

标签: sql-server

我想知道一个唯一键在sql server中有多少个空值。我读了很多文章,每个人都有不同的答案,有些人说接受无限空,有些人说只接受一个空,根据我的说法,只有一个空值可以接受我是对还是错?

1 个答案:

答案 0 :(得分:3)

答案是:这取决于。有一种方法可以创建一个允许MS SQL Server中有多个空值的唯一索引,但它不是默认值。 MS中的默认值是只允许一个NULL。但那不是ANSI标准。 ANSI标准92,99和03明确允许具有唯一的多个空值。

这里的答案给出了一个很好的解释: How do I create a unique constraint that also allows nulls?

更新示例: 从表定义中删除UNIQUE约束,然后像这样添加索引

CREATE UNIQUE NONCLUSTERED INDEX idx_name
ON table_name(column_name)
WHERE column_name IS NOT NULL;