我可以对NULLable字段进行唯一约束吗?

Sil*_*ent 2 sql-server sql-server-2008

我有一张下面的表格

CREATE TABLE MyTable  
(  
  ID                INTEGER DEFAULT(1,1),  
  FirstIdentifier   INTEGER NULL,  
  SecondIdentifier  INTEGER NULL,  
--.... some other fields .....  
) 
Run Code Online (Sandbox Code Playgroud)

现在,FirstIdentifier和SecondIdentifier中的每一个都是唯一但可以为NULL的.我想在每个列上放置一个唯一的约束,但不能这样做,因为它的NULLable可以有两行,其中NULL值会使这些唯一约束失败.有关如何在架构级别上解决它的任何想法?

Mik*_*son 7

您可以使用筛选索引作为唯一约束.

create unique index ix_FirstIdentifier on MyTable(FirstIdentifier) 
  where FirstIdentifier is not null
Run Code Online (Sandbox Code Playgroud)