你正在寻找的是ANSI标准SQL:92,SQL:1999和SQL:2003的一部分,即UNIQUE约束必须禁止重复的非NULL值,但接受多个NULL值。
然而,在SQL Server的微软世界中,只允许一个NULL,但多个NULL不是...
在SQL Server 2008中,您可以基于排除NULL的谓词定义唯一的已过滤索引:
CREATE UNIQUE NONCLUSTERED INDEX idx_yourcolumn_notnull
ON YourTable(yourcolumn)
WHERE yourcolumn IS NOT NULL;
在早期版本中,可以使用NOT NULL谓词来执行VIEWS来强制约束。... 展开详请