Hvis du allerede har en eksisterende CHECK
begrænsning i SQL Server, men du skal ændre den, du bliver nødt til at slippe den og genskabe den. Der er ingen ALTER CONSTRAINT
erklæring eller noget lignende.
Så for at "modificere" en eksisterende begrænsning:
- Slet begrænsningen ved hjælp af
ALTER TABLE
medDROP CONSTRAINT
. - Opret den nye begrænsning ved hjælp af
ALTER TABLE
medADD CONSTRAINT
.
Eksempel
Her er et eksempel på at slippe og genskabe en CHECK
begrænsning.
ALTER TABLE ConstraintTest DROP CONSTRAINT chkTeamSize; ALTER TABLE ConstraintTest ADD CONSTRAINT chkTeamSize CHECK (TeamSize >= 5 AND TeamSize <= 20) ;
Som nævnt kan du ikke ændre det - du skal droppe det og oprette det med den nye definition.
I dette tilfælde kaldes begrænsningen chkTeamSize og jeg dropper det simpelthen og skaber det med den nye definition.
En bemærkning om bestilling
Bemærk, at CHECK
begrænsninger valideres i den rækkefølge, som de er oprettet, så slip/genoprettelse af en begrænsning kan medføre, at den valideres i en anden rækkefølge end tidligere. Dette kan resultere i, at andre fejl bliver fanget før denne begrænsning, når de tidligere blev fanget efter.