Използвайте уникален филтриран индекс
На SQL Server 2008 или по-нова версия можете просто да използвате уникален филтриран индекс
CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
ON TableName(FormID)
WHERE isDefault = 1
Където е масата
CREATE TABLE TableName(
FormID INT NOT NULL,
isDefault BIT NOT NULL
)
Например, ако се опитате да вмъкнете много редове със същия FormID
и isDefault
настроен на 1, ще имате тази грешка:
Не може да се вмъкне дублиран ключов ред в обект 'dbo.TableName' с уникален индекс 'IX_TableName_FormID_isDefault'. Стойността на дублирания ключ е (1).
Източник:http://technet.microsoft.com/en-us/library/cc280372.aspx