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 TABLEmedDROP CONSTRAINT. - Opret den nye begrænsning ved hjælp af
ALTER TABLEmedADD 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.