Sql server 2005 唯一约束,不包括空值

Sql server 2005 唯一约束,不包括空值,sql-server-2005,constraints,unique-key,Sql Server 2005,Constraints,Unique Key,可能重复: 我的表中有一列,其中所有值都必须是唯一的或空的 我尝试为该列的表添加一个唯一键,但这似乎意味着我只能有1个空值 如何设置约束以使所有值都是唯一的,除非它们为NULL?SQL Server 2008已筛选出允许此操作的索引,但它们在2005年不可用。在SQLServer2005中,可以创建具有定义的索引视图 CREATE VIEW dbo.Foo WITH SCHEMABINDING AS SELECT bar FROM dbo.baz WHERE bar IS NOT NULL

可能重复:

我的表中有一列,其中所有值都必须是唯一的或空的

我尝试为该列的表添加一个唯一键,但这似乎意味着我只能有1个空值


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

SQL Server 2008已筛选出允许此操作的索引,但它们在2005年不可用。在SQLServer2005中,可以创建具有定义的索引视图

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)