唯一约束在NON-NULL列上的唯一约束
在MS SQL Server 2008中,是否有可能在列BUT上定义UNIQUE CONSTRAINT
,该列是对IF进行检查的,并且对于非空值来说是ONLY。也就是说,会有很多NULL应该被忽略。但对于非空值,它应该是唯一的。唯一约束在NON-NULL列上的唯一约束
你需要创建一个筛选索引:
CREATE UNIQUE NONCLUSTERED INDEX User_PinNr_IUC
ON [User] (pinNr)
WHERE pinNr IS NOT NULL
WHERE < filter_predicate>:
通过指定 创建一个过滤索引哪些行包括在索引中。 过滤后的索引必须是表格上的非聚簇索引 。为已过滤的索引中的数据行 创建 已过滤的统计信息。
谢谢! CREATE INDEX和ADD CONSTRAINT有什么区别吗?请问,如何为varchar NULL或EMPTY/WHITESPACE写入条件? – Cartesius00
@James:CREATE INDEX是一个独立的声明。在CREATE/ALTER TABLE语句中使用ADD CONSTRAINT。 –
@James:VARCHARColumn为null或VARCHARColumn =“” –
[重复的空值SQL Server的唯一约束]的可能重复(http://*.com/questions/1796414/sql-server-unique-constraint-with-duplicate-nulls)(和许多其他人) –