可空列的唯一约束的替代方法



SQL Server 允许您应用 UNIQUE 约束,但它的行为很奇怪:此类列中不能有多个NULL

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

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

如果是这种情况,我们如何定义一个允许多个NULLUNIQUE列?

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

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

相关内容

  • 没有找到相关文章

最新更新