Se hai già un CHECK
esistente vincolo in SQL Server, ma è necessario modificarlo, sarà necessario eliminarlo e ricrearlo. Non esiste ALTER CONSTRAINT
dichiarazione o qualcosa di simile.
Quindi per “modificare” un vincolo esistente:
- Rilascia il vincolo usando
ALTER TABLE
conDROP CONSTRAINT
. - Crea il nuovo vincolo usando
ALTER TABLE
conADD CONSTRAINT
.
Esempio
Ecco un esempio di eliminazione e ricreazione di un CHECK
vincolo.
ALTER TABLE ConstraintTest DROP CONSTRAINT chkTeamSize; ALTER TABLE ConstraintTest ADD CONSTRAINT chkTeamSize CHECK (TeamSize >= 5 AND TeamSize <= 20) ;
Come accennato, non puoi modificarlo:devi rilasciarlo e crearlo con la nuova definizione.
In questo caso, il vincolo è chiamato chkTeamSize e lo lascio semplicemente cadere e lo creo con la nuova definizione.
Una nota sull'ordinazione
Nota che CHECK
i vincoli vengono convalidati nell'ordine in cui sono stati creati, quindi l'eliminazione/ricreazione di un vincolo può comportarne la convalida in un ordine diverso rispetto a prima. Ciò potrebbe comportare la cattura di altri errori prima di questo vincolo, quando erano stati rilevati in precedenza dopo.