仅对NON-NULL列的唯一约束

时间:2011-06-18 08:25:18

标签: sql-server sql-server-2008

在MS SQL Server 2008中,是否可以在列BUT上定义UNIQUE CONSTRAINT,该列检查IF,而仅检查NON-NULL值。也就是说,应该忽略许多NULL。但是对于非空值,它应该是唯一的。

1 个答案:

答案 0 :(得分:5)

您需要创建过滤索引

CREATE UNIQUE NONCLUSTERED INDEX User_PinNr_IUC
ON [User] (pinNr)
WHERE pinNr IS NOT NULL

参考CREATE INDEX (Transact-SQL)

  

WHERE< filter_predicate> :
  通过指定创建筛选索引   要包含在索引中的行。   过滤的索引必须是a   表上的非聚集索引。创建   过滤了数据行的统计信息   在过滤的索引中。