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