SQL Server允许您应用UNIQUE
约束,但其行为很奇怪:在这样的列中不能有多个NULL
。
我阅读NULL
及其正常行为的含义,以及其他DMBS产品的工作方式,是NULL
应该被忽略。相反,它似乎被比较,因此多个NULL被视为重复。
我认为这与NULL
的正常行为相反,也是不幸的。例如,应该可以指出移动电话号码(如果已知)是唯一的。
如果是这种情况,我们如何定义 允许多个UNIQUE
的{{1}}列?
答案 0 :(得分:1)
在SQL Server 2008 及更新版本中,您可以创建过滤索引,例如排除NULL值:
CREATE NONCLUSTERED UNIQUE INDEX IX_SomeName
ON dbo.YourTableName(Columns)
WHERE Column1 IS NOT NULL