Použijte jedinečný filtrovaný index
Na serveru SQL Server 2008 nebo vyšším můžete jednoduše použít jedinečný filtrovaný index
CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
ON TableName(FormID)
WHERE isDefault = 1
Kde je tabulka
CREATE TABLE TableName(
FormID INT NOT NULL,
isDefault BIT NOT NULL
)
Pokud se například pokusíte vložit mnoho řádků se stejným FormID
a isDefault
nastaven na 1, zobrazí se tato chyba:
Nelze vložit duplicitní řádek klíče do objektu 'dbo.TableName' s jedinečným indexem 'IX_TableName_FormID_isDefault'. Hodnota duplicitního klíče je (1).
Zdroj:http://technet.microsoft.com/en-us/library/cc280372.aspx