W tym jednym projekcie, nad którym pracuję, muszę ustawić określone pole, aby było unikalne (nie jest to problem!), Ale jeśli pole ma wartość zerową, chcę, aby ograniczenie zostało zignorowane. W Sql Server 2008 używam filtrowanego indeksu, jak pokazano poniżej, ale nie jest to dostępne we wcześniejszych wersjach SQL!
CREATE UNIQUE NONCLUSTERED INDEX User_UserName_IUC
ON [User] (pinNr)
WHERE UserName IS NOT NULL
Ale nie sądzę, że jest to dostępne w SQL Server 2005. W rzeczywistości ten post na blogu wskazuje, że istnieje obejście polegające na użyciu wyzwalacza do sprawdzenia wyjątkowości. Czy ktoś ma na to przykład? a może alternatywa?
Niestety uaktualnienie do SQl Server 2008 nie jest opcją dla tego konkretnego klienta !!
źródło