Ако вече имате съществуваща CHECK ограничение в SQL Server, но трябва да го модифицирате, ще трябва да го пуснете и да го създадете отново. Няма ALTER CONSTRAINT изявление или нещо подобно.
Така че, за да „промените“ съществуващо ограничение:
- Отхвърлете ограничението с помощта на
ALTER TABLEсDROP CONSTRAINT. - Създайте новото ограничение с помощта на
ALTER TABLEсADD CONSTRAINT.
Пример
Ето пример за отпадане и пресъздаване на CHECK ограничение.
ALTER TABLE ConstraintTest DROP CONSTRAINT chkTeamSize; ALTER TABLE ConstraintTest ADD CONSTRAINT chkTeamSize CHECK (TeamSize >= 5 AND TeamSize <= 20) ;
Както споменахме, не можете да го модифицирате – трябва да го пуснете и да го създадете с новата дефиниция.
В този случай ограничението се нарича chkTeamSize и просто го пускам и го създавам с новата дефиниция.
Бележка относно поръчката
Обърнете внимание, че CHECK ограниченията се валидират в реда, в който са създадени, така че отпадането/пресъздаването на ограничение може да доведе до валидирането му в различен ред от преди. Това може да доведе до улавяне на други грешки преди това ограничение, когато преди това са били уловени след това.