替代可空列的UNIQUE contstraint

时间:2017-10-10 04:44:25

标签: sql-server null unique-constraint

SQL Server允许您应用UNIQUE约束,但其行为很奇怪:在这样的列中不能有多个NULL

我阅读NULL及其正常行为的含义,以及其他DMBS产品的工作方式,是NULL应该被忽略。相反,它似乎被比较,因此多个NULL被视为重复。

我认为这与NULL的正常行为相反,也是不幸的。例如,应该可以指出移动电话号码(如果已知)是唯一的。

如果是这种情况,我们如何定义 允许多个UNIQUE的{​​{1}}列?

1 个答案:

答案 0 :(得分:1)

在SQL Server 2008 及更新版本中,您可以创建过滤索引,例如排除NULL值:

CREATE NONCLUSTERED UNIQUE INDEX IX_SomeName
ON dbo.YourTableName(Columns)
WHERE Column1 IS NOT NULL