Verwenden Sie einen eindeutigen gefilterten Index
Auf SQL Server 2008 oder höher können Sie einfach einen eindeutigen gefilterten Index verwenden
CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
ON TableName(FormID)
WHERE isDefault = 1
Wo der Tisch ist
CREATE TABLE TableName(
FormID INT NOT NULL,
isDefault BIT NOT NULL
)
Zum Beispiel, wenn Sie versuchen, viele Zeilen mit derselben FormID
einzufügen und isDefault
auf 1 gesetzt, erhalten Sie diesen Fehler:
Es kann keine doppelte Schlüsselzeile in das Objekt „dbo.TableName“ mit dem eindeutigen Index „IX_TableName_FormID_isDefault“ eingefügt werden. Der doppelte Schlüsselwert ist (1).
Quelle:http://technet.microsoft.com/en-us/library/cc280372.aspx