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

Comment supprimer une colonne avec une contrainte dans SQL Server

Cet article montre comment supprimer une colonne dans une base de données SQL Server, lorsque cette colonne a une contrainte existante (Astuce :vous devez d'abord supprimer la contrainte).

Si vous avez déjà essayé de supprimer une colonne, dites ceci :

ALTER TABLE Tasks
    DROP COLUMN TaskCode;
GO

Seulement pour obtenir une erreur comme celle-ci :

Msg 5074, Level 16, State 1, Line 1
The object 'taskcode_unique' is dependent on column 'TaskCode'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE DROP COLUMN TaskCode failed because one or more objects access this column.

La raison en est que la colonne a une contrainte existante et que vous ne pouvez pas supprimer la table lorsqu'elle a une contrainte.

Par conséquent, vous devez supprimer la contrainte avant de supprimer la table.

Abandonnez d'abord la contrainte

Voici comment supprimer la contrainte :

ALTER TABLE Tasks
    DROP CONSTRAINT taskcode_unique;
GO

Résultat :

Commands completed successfully.

Ensuite, déposez la table

Maintenant que vous avez supprimé la contrainte, vous pouvez continuer et supprimer la table :

ALTER TABLE Tasks
    DROP COLUMN TaskCode;
GO

Résultat :

Commands completed successfully.