sql >> Databasteknik >  >> RDS >> Sqlserver

Begränsning för endast en post markerad som standard

Använd ett unikt filtrerat index

På SQL Server 2008 eller senare kan du helt enkelt använda ett unik filtrerat index

CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
    ON TableName(FormID)
    WHERE isDefault = 1

Där bordet är

CREATE TABLE TableName(
    FormID INT NOT NULL,
    isDefault BIT NOT NULL
)

Till exempel om du försöker infoga många rader med samma FormID och isDefault inställd på 1 får du det här felet:

Det går inte att infoga duplicerad nyckelrad i objektet 'dbo.TableName' med unikt index 'IX_TableName_FormID_isDefault'. Dupliceringsnyckelns värde är (1).

Källa:http://technet.microsoft.com/en-us/library/cc280372.aspx



  1. JSON_STORAGE_FREE() – Ta reda på hur mycket lagringsutrymme som frigjordes efter en uppdatering av ett JSON-dokument i MySQL

  2. Ta bort en länkad server i SQL Server med T-SQL

  3. Oracle DROP TABELL OM FINNS Alternativ

  4. dela alfa och numerisk med sql