探しているのは、実際にANSI標準SQL:92、SQL:1999、およびSQL:2003の一部です。つまり、UNIQUE制約は、NULL以外の値の重複を禁止する必要がありますが、複数のNULL値を受け入れる必要があります。
ただし、MicrosoftのSQL Serverの世界では、単一のNULLは許可されていますが、複数のNULLは許可されていません...
SQL Server 2008 、NULLを除外する述語に基づいて一意のフィルター処理されたインデックスを定義できます:
CREATE UNIQUE NONCLUSTERED INDEX idx_yourcolumn_notnull
ON YourTable(yourcolumn)
WHERE yourcolumn IS NOT NULL;
以前のバージョンでは、制約を適用するためにNOTNULL述語を持つVIEWSに頼ることができました。