Si vous avez déjà un CHECK
existant contrainte dans SQL Server, mais vous devez la modifier, vous devrez la supprimer et la recréer. Il n'y a pas de ALTER CONSTRAINT
déclaration ou quelque chose de similaire.
Donc pour "modifier" une contrainte existante :
- Supprimer la contrainte à l'aide de
ALTER TABLE
avecDROP CONSTRAINT
. - Créez la nouvelle contrainte en utilisant
ALTER TABLE
avecADD CONSTRAINT
.
Exemple
Voici un exemple de suppression et de recréation d'un CHECK
contrainte.
ALTER TABLE ConstraintTest DROP CONSTRAINT chkTeamSize; ALTER TABLE ConstraintTest ADD CONSTRAINT chkTeamSize CHECK (TeamSize >= 5 AND TeamSize <= 20) ;
Comme mentionné, vous ne pouvez pas le modifier - vous devez le supprimer et le créer avec la nouvelle définition.
Dans ce cas, la contrainte s'appelle chkTeamSize et je le dépose simplement et le crée avec la nouvelle définition.
Une note sur la commande
Notez que CHECK
les contraintes sont validées dans l'ordre dans lequel elles sont créées, donc la suppression/recréation d'une contrainte peut entraîner sa validation dans un ordre différent qu'auparavant. Cela peut entraîner la détection d'autres erreurs avant cette contrainte, alors qu'elles étaient précédemment détectées après.