可能重复:
The proper way to implement unique constraint that allows multiple NULL values in SQL Server
我的表中有一列,其中所有值必须是唯一的,或者为NULL。
我尝试在此列的表中添加一个唯一键,但这似乎意味着我只能有1个NULL值?
如何设置约束以使所有值都是唯一的,除非它们是NULL?
答案 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)