Si vous utilisez SQL Server 2008, un filtre d'index serait peut-être votre solution :
http://msdn.microsoft.com/en-us/library/ms188783 .aspx
Voici comment j'applique un index unique avec plusieurs valeurs NULL
CREATE UNIQUE INDEX [IDX_Blah] ON [tblBlah] ([MyCol]) WHERE [MyCol] IS NOT NULL