![](/img/trans.png)
[英]unique constraint with a condition to accept multiple nulls on a unique column
[英]Enforcing unique and multiple NULLS for a column in a table
如何在SQL Server中為表的列強制執行Unique值以及多個NULL?
從這個答案 :
在SQL Server 2008中 ,您可以基於排除NULL的謂詞定義唯一的篩選索引:
CREATE UNIQUE NONCLUSTERED INDEX idx_yourcolumn_notnull ON YourTable(yourcolumn) WHERE yourcolumn IS NOT NULL;
在早期版本中,您可以使用帶有NOT NULL謂詞的VIEWS來強制執行約束。
其他答案提到過濾索引和觸發器。
篩選的索引僅適用於SQL Server 2008。 對於早期版本並避免代碼(觸發):
您可以使用帶有IS NOT NULL篩選器的索引視圖。 這是DRI方法
或者,您可以使用ISNULL(TheColumn, -PKIdentityCol)
(或基於PK的其他值ISNULL(TheColumn, -PKIdentityCol)
作為計算列,這也是DRI
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.