在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. 唯一約束Nhibernate
- 4. OpenERP唯一約束
- 5. oracle唯一約束
- 6. 唯一約束JayData
- 7. 唯一約束(SchemaName.DATA1_PK)
- 8. 唯一約束值
- 9. 多列唯一約束
- 10. 添加唯一約束列
- 11. 多列唯一約束
- 12. 兩列唯一約束ActiveAndroid
- 13. DB2 - 唯一約束多列
- 14. 唯一約束外鍵列
- 15. SQLite表約束 - 在多列上唯一
- 16. 表列上的唯一約束條件
- 17. PostgreSQL的唯一約束不夠唯一
- 18. 在唯一鍵約束
- 19. 唯一約束在System.Data.DataColumn
- 20. Grails的唯一約束
- 21. SQLite中的唯一約束
- 22. 唯一約束vs唯一索引
- 23. Oracle唯一約束和唯一索引
- 24. 定義在表的同一列上的主鍵約束和唯一約束
- 25. XML模式唯一約束
- 26. JPA唯一約束驗證
- 27. Neo4JClient創建唯一約束
- 28. 笨ORA-00001:唯一約束
- 29. Postgres添加唯一約束
- 30. 唯一約束與預檢
[重複的空值SQL Server的唯一約束]的可能重複(http://stackoverflow.com/questions/1796414/sql-server-unique-constraint-with-duplicate-nulls)(和許多其他人) –