可空列上的唯一索引

问题描述:

我有一个包含许多记录的表。列X可以为空,并且很多记录在此列中有NULL。我可以在此列上创建一个UNIQUE非聚集索引吗?不是那些违反唯一约束的空值?可空列上的唯一索引

+0

当你尝试时发生了什么? – 2013-02-18 03:11:19

+0

在这里,[>>点击此处查看演示 2013-02-18 03:15:34

+0

[如何在NULL列上创建唯一索引?](http://*.com/questions/191421/how-to-create-a-unique-index-on-a-null-column?rq=1 ) – peterm 2013-02-18 03:16:43

如果您不是SQL Server 或更新 - 您可以设置一个过滤的唯一索引来排除/忽略所有NULL值。

CREATE UNIQUE NONCLUSTERED INDEX uixYourIndexName 
ON dbo.YourTableName(YourColumnName) 
WHERE YourColumnName IS NOT NULL 

这将基本上是“过滤掉”所有NULL值 - 这还不包括他们进入指数在所有。任何使用相同WHERE子句的查询都可以使用此筛选索引来查找这些行。

没有过滤索引,你可以不,因为具有唯一索引创建你的列中的唯一索引,你只允许有一个具有该列NULL一行。