Brug et unikt filtreret indeks
På SQL Server 2008 eller nyere kan du blot bruge et unikt filtreret indeks
CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
ON TableName(FormID)
WHERE isDefault = 1
Hvor bordet er
CREATE TABLE TableName(
FormID INT NOT NULL,
isDefault BIT NOT NULL
)
For eksempel hvis du forsøger at indsætte mange rækker med samme FormID
og isDefault
indstillet til 1 vil du få denne fejl:
Kan ikke indsætte dublet nøglerække i objektet 'dbo.TableName' med unikt indeks 'IX_TableName_FormID_isDefault'. Dubletnøgleværdien er (1).
Kilde:http://technet.microsoft.com/en-us/library/cc280372.aspx