Was Sie suchen, ist in der Tat Teil der ANSI-Standards SQL:92, SQL:1999 und SQL:2003, dh eine UNIQUE-Einschränkung muss doppelte Nicht-NULL-Werte zulassen, aber mehrere NULL-Werte akzeptieren.
In der Microsoft-Welt von SQL Server ist jedoch eine einzelne NULL erlaubt, aber mehrere NULLen nicht ...
In SQL Server 2008 , können Sie einen eindeutigen gefilterten Index basierend auf einem Prädikat definieren, das NULLen ausschließt:
CREATE UNIQUE NONCLUSTERED INDEX idx_yourcolumn_notnull
ON YourTable(yourcolumn)
WHERE yourcolumn IS NOT NULL;
In früheren Versionen können Sie auf VIEWS mit einem NOT NULL-Prädikat zurückgreifen, um die Einschränkung durchzusetzen.