Những gì bạn đang tìm kiếm thực sự là một phần của tiêu chuẩn ANSI SQL:92, SQL:1999 và SQL:2003, tức là một ràng buộc UNIQUE phải không cho phép các giá trị không phải NULL trùng lặp nhưng chấp nhận nhiều giá trị NULL.
Tuy nhiên, trong thế giới SQL Server của Microsoft, một NULL được cho phép nhưng nhiều NULL thì không ...
Trong SQL Server 2008 , bạn có thể xác định một chỉ mục được lọc duy nhất dựa trên một vị từ loại trừ NULL:
CREATE UNIQUE NONCLUSTERED INDEX idx_yourcolumn_notnull
ON YourTable(yourcolumn)
WHERE yourcolumn IS NOT NULL;
Trong các phiên bản trước đó, bạn có thể sử dụng VIEWS với vị từ KHÔNG ĐẦY ĐỦ để thực thi ràng buộc.