Ако вече имате съществуваща 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
ограниченията се валидират в реда, в който са създадени, така че отпадането/пресъздаването на ограничение може да доведе до валидирането му в различен ред от преди. Това може да доведе до улавяне на други грешки преди това ограничение, когато преди това са били уловени след това.