簡體   English   中英

對表中的列強制執行唯一和多個NULL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM