Om du redan har en befintlig CHECK
begränsning i SQL Server, men du måste ändra den, du måste släppa den och återskapa den. Det finns ingen ALTER CONSTRAINT
uttalande eller något liknande.
Så för att "modifiera" en befintlig begränsning:
- Släpp begränsningen med
ALTER TABLE
medDROP CONSTRAINT
. - Skapa den nya begränsningen med
ALTER TABLE
medADD CONSTRAINT
.
Exempel
Här är ett exempel på hur du släpper och återskapar en CHECK
begränsning.
ALTER TABLE ConstraintTest DROP CONSTRAINT chkTeamSize; ALTER TABLE ConstraintTest ADD CONSTRAINT chkTeamSize CHECK (TeamSize >= 5 AND TeamSize <= 20) ;
Som nämnts kan du inte ändra det – du måste släppa det och skapa det med den nya definitionen.
I det här fallet kallas begränsningen chkTeamSize och jag släpper det helt enkelt och skapar det med den nya definitionen.
En anmärkning om beställning
Observera att CHECK
begränsningar valideras i den ordning som de skapas, så att släppa/återskapa en begränsning kan göra att den valideras i en annan ordning än tidigare. Detta kan resultera i att andra fel fångas upp före denna begränsning, när de tidigare fångades efter.