uniqe constraint on a nullable column
本问题已经有最佳答案,请猛点这里访问。
新年快乐,我在这个网站上的第一个问题,请帮忙
我有一个名为dbo的表。它有一个名为Person_NCID的列,这是一个可空列,但我想在非空值上创建一个唯一约束。 当我创建一个uniqe约束时,它现在返回一个错误,因为我在列中有多个空值。 我应该使用用户定义的函数来创建唯一约束吗?
您需要在此列上使用筛选索引,该索引将忽略表中的任何空值。
尝试类似的东西
1 2 | CREATE UNIQUE INDEX IX_Person_Person_NCID ON dbo.Person(Person_NCID) WHERE Person_NCID IS NOT NULL |
这实际上将在非空值上创建唯一约束。
创建唯一的筛选索引(SQL Server 2008以上版本):
1 2 3 | CREATE UNIQUE NONCLUSTERED INDEX NC_Person_Person_NCID ON dbo.Person(Person_NCID) WHERE Person_NCID IS NOT NULL; |