在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 =“” –
- 1. 唯一约束
- 2. DataTable上的唯一约束
- 3. 唯一约束(SchemaName.DATA1_PK)
- 4. 唯一约束值
- 5. 唯一约束JayData
- 6. 唯一约束Nhibernate
- 7. 多列唯一约束
- 8. 多列唯一约束
- 9. DB2 - 唯一约束多列
- 10. 唯一约束外键列
- 11. 添加唯一约束列
- 12. SQLite表约束 - 在多列上唯一
- 13. 表列上的唯一约束条件
- 14. 在唯一键约束
- 15. 唯一约束在System.Data.DataColumn
- 16. SQLite中的唯一约束
- 17. Grails的唯一约束
- 18. 唯一约束vs唯一索引
- 19. Oracle唯一约束和唯一索引
- 20. 定义在表的同一列上的主键约束和唯一约束
- 21. PK和唯一约束
- 22. 复合唯一约束SQL
- 23. 笨ORA-00001:唯一约束
- 24. 冬眠唯一约束
- 25. HABTM - 唯一性约束
- 26. 唯一约束异常(SQLIntegrityConstraintViolationException)
- 27. sql错误 - 唯一约束
- 28. 主键与唯一约束?
- 29. 唯一约束与预检
- 30. JPA唯一约束验证
[重复的空值SQL Server的唯一约束]的可能重复(http://stackoverflow.com/questions/1796414/sql-server-unique-constraint-with-duplicate-nulls)(和许多其他人) –