具有UNIQUE索引的列中的多个NULL值

时间:2013-03-04 16:17:57

标签: sql-server

我们有一个表在列上具有唯一索引,可以接受空值。问题是我们发现这个结构只能接受一行具有NULL值。如果我们尝试添加NULL值的第二行,我们会得到一个错误。 “无法在对象中插入重复的键行......”

我们可以做些什么来保持此列的索引以及将NULL值添加到多行的能力吗?

1 个答案:

答案 0 :(得分:28)

是的,您可以使用过滤索引来支持此功能。只需删除现有索引并创建像这样的新索引

CREATE UNIQUE INDEX Index_Name ON TableName(ColumnName)
WHERE ColumnName IS NOT NULL

这将允许您复制NULL值。如果您需要更多详细信息,请参阅以下文章。

http://blog.sqlauthority.com/2008/09/01/sql-server-2008-introduction-to-filtered-index-improve-performance-with-filtered-index/