唯一约束,不包括NULL值

时间:2011-05-27 09:50:11

标签: sql-server-2005 constraints unique-key

  

可能重复:
  The proper way to implement unique constraint that allows multiple NULL values in SQL Server

我的表中有一列,其中所有值必须是唯一的,或者为NULL。

我尝试在此列的表中添加一个唯一键,但这似乎意味着我只能有1个NULL值?

如何设置约束以使所有值都是唯一的,除非它们是NULL?

1 个答案:

答案 0 :(得分:3)

SQL Server 2008已经过滤了允许这样做的索引,但它们在2005年不可用。在SQL Server 2005中,您可以创建带定义的索引视图

CREATE VIEW dbo.Foo
WITH SCHEMABINDING
AS
SELECT bar
FROM dbo.baz
WHERE bar IS NOT NULL

然后在其上创建一个唯一的聚簇索引。

CREATE UNIQUE CLUSTERED INDEX ix ON dbo.Foo(bar)