Това, което търсите, наистина е част от стандартите на 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;
В по-ранни версии можете да прибягвате до VIEWS с предикат NOT NULL, за да наложите ограничението.