Gebruik een unieke gefilterde index
Op SQL Server 2008 of hoger kunt u eenvoudig een uniek gefilterde index gebruiken
CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
ON TableName(FormID)
WHERE isDefault = 1
Waar de tafel is
CREATE TABLE TableName(
FormID INT NOT NULL,
isDefault BIT NOT NULL
)
Als u bijvoorbeeld veel rijen probeert in te voegen met dezelfde FormID
en isDefault
ingesteld op 1 krijgt u deze fout:
Kan geen dubbele sleutelrij invoegen in object 'dbo.TableName' met uniqueindex 'IX_TableName_FormID_isDefault'. De dubbele sleutelwaarde is (1).
Bron:http://technet.microsoft.com/en-us/library/cc280372.aspx