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

Ken*_*ams 6 sql-server

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

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

小智 28

是的,您可以使用筛选索引来支持此功能.只需删除现有索引并创建这样的新索引即可

CREATE UNIQUE INDEX Index_Name ON TableName(ColumnName)
WHERE ColumnName IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

这将允许您具有NULL值的重复项.如果您需要更多详细信息,请参阅以下文章.

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