Einschränkung für nur einen als Standard markierten Datensatz
Wie kann eine Einschränkung für eine Tabelle festgelegt werden, sodass nur einer der Das isDefault-Bitfeld von Datensätzen ist auf 1 gesetzt?
Lösung: Verwenden eines eindeutigen Filters Index
Für SQL Server 2008 oder höher kann ein eindeutiger gefilterter Index verwendet werden:
CREATE UNIQUE INDEX IX_TableName_FormID_isDefault ON TableName(FormID) WHERE isDefault = 1
wobei die Tabelle wie folgt definiert ist:
CREATE TABLE TableName( FormID INT NOT NULL, isDefault BIT NOT NULL )
Das Einfügen mehrerer Zeilen mit derselben FormID und isDefault auf 1 führt zu folgendem Fehler:
Cannot insert duplicate key row in object 'dbo.TableName' with unique index 'IX_TableName_FormID_isDefault'. The duplicate key value is (1).
Das obige ist der detaillierte Inhalt vonWie kann sichergestellt werden, dass nur ein Datensatz in einer SQL Server-Tabelle isDefault = 1 hat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!