Jeśli używasz SQL Server 2008, rozwiązaniem może być filtr indeksu:
http://msdn.microsoft.com/en-us/library/ms188783 .aspx
W ten sposób wymuszam unikalny indeks z wieloma wartościami NULL
CREATE UNIQUE INDEX [IDX_Blah] ON [tblBlah] ([MyCol]) WHERE [MyCol] IS NOT NULL