Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Modifier une contrainte CHECK dans SQL Server à l'aide de T-SQL

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 :

  1. Supprimer la contrainte à l'aide de ALTER TABLE avec DROP CONSTRAINT .
  2. Créez la nouvelle contrainte en utilisant ALTER TABLE avec ADD 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.