• Do not like the question.

    First of all, it IS definitely possible to create a table which would accept any number of NULLs but no duplicate non-null values in 2005 and perphaps in 2000. You can use computed column which substitutes a key value when the value in question is null. In details it is here.

    The problem lies in the words "unique constraint". It has at least TWO meanings: "something that does not allow duplicates" and "SQL Server object implemented via unique index". And this second meaning makes the question... unfair.

    You are NOT to create the unique CONSTRAINT (as SQL Server object) that allows multiple nulls. Unique CONSTRAINT can only allow one null value. What you can do is to create a unique INDEX which will impose certain constraint (limitation) but will NOT create a SQL Server constraint.

    If the question had been about INDEX, it would have been completely fair.

    Nevertheless, thanks for the reminder about filtered index.