Comment supprimer une colonne d'une table existante?Suppression de colonnes dans MS SQL Server
Répondre
La commande que vous recherchez est:
alter table tblName drop column columnName
où tblName
est le nom de la table et columnName
est le nom de la colonne, mais il y a quelques choses que vous pourriez avoir besoin à faire en premier.
- S'il existe des références de clé étrangère à la colonne, vous devez d'abord vous en débarrasser.
- S'il existe un index utilisant cette colonne, vous devrez soit vous en débarrasser, soit l'ajuster pour ne pas utiliser cette colonne.
Gardez à l'esprit que la performance de cette commande ne peut pas nécessairement être bon. Une option consiste à attendre une période d'arrêt lorsque vous pouvez être certain que personne n'accèdera à la base de données, renommer la table en cours, puis utiliser create table
et insert into ... select from
pour transférer les colonnes que vous ne voulez pas supprimer.
L'une des versions ultérieures d'Oracle a en fait une suppression logicielle qui peut simplement marquer une colonne comme inutilisée sans la supprimer physiquement. Cela a le même effet puisque vous ne pouvez plus le référencer et qu'il y a une commande le long des lignes alter table ... drop unused columns
qui doit être exécutée en temps calme, ce qui fait le dur travail de la supprimer physiquement. Ceci a l'avantage de "faire disparaître" immédiatement les colonnes sans faire baisser les performances de la base de données pendant les heures de pointe.
ALTER TABLE XXX DROP COLUMN YYY;
Pour les grandes tables, cela peut être très lent. Il peut souvent être beaucoup plus rapide de créer une nouvelle table, une copie de l'ancienne mais avec les changements, et d'insérer les données. Déposez l'ancienne table, puis renommez la nouvelle table.
Cela peut également être fait via l'interface graphique SSMS.
J'aime cette méthode car elle vous avertit s'il existe des relations sur cette colonne et peut également les supprimer automatiquement. Comme le dit PaxDiablo, s'il y a des relations, elles doivent d'abord être supprimées.
- table Put en mode Création (clic droit sur la table) comme ceci:
- Faites un clic droit sur la colonne dans le mode Création de table et cliquez sur "Supprimer colonne"
À ce stade, s'il existe des relations qui doivent également être supprimées, il vous demandera si vous souhaitez également les supprimer.
- 1. Manipulation de chaînes dans MS SQL Server
- 2. MS SQL Server 2005 sp_stored_procedures
- 3. Colonnes dynamiques SQL Server Problème
- 4. MS SQL Server COLUMNS_UPDATED() Fonction
- 5. MS SQL Server, insérer plusieurs
- 6. Colonnes de remappage T-SQL SQL Server 2005
- 7. Sauvegarde MS SQL Server 2005?
- 8. Optimisation de la suppression sur SQL Server
- 9. SQL Server xml.modify méthode de suppression
- 10. Suppression de tables temporaires globales (## tempTable) dans SQL Server
- 11. Index varchar sur MS SQL Server 2005
- 12. Sql Server (Entity Framework): created_at, updated_at Colonnes
- 13. Ordre d'affichage des colonnes SQL Server
- 14. Colonnes pivot MS-Access
- 15. Pochoirs Visio pour MS SQL Server
- 16. Comment apprendre MS SQL Server 2005?
- 17. Colonnes fragmentées SQL Server 2008 - Inverses
- 18. Réinitialiser l'incrémentation automatique dans SQL Server après la suppression
- 19. Renommage d'une colonne dans MS SQL Server 2005
- 20. Modifier les synonymes dans MS SQL Server 2005
- 21. Procédures stockées dans MS-SQL Server 2005 et Oracle
- 22. Erreur dans la condition if - MS SQL server
- 23. Problème d'enregistrement distinct dans la requête MS SQL Server 2008
- 24. SQL MS SQL Server V.8 problème UNION
- 25. MS Sql Server 2000: requête de base de données multiples
- 26. MySQL: Sélection de données à partir de MS SQL Server
- 27. Comment imiter les vues matérialisées Oracle sur MS SQL Server?
- 28. SQL Server 2005: vérification de la suppression d'enregistrements aléatoires
- 29. requête SQL, caractère générique, MS SQL Server 2005
- 30. SQL Server 2005: espace disque pris par les colonnes supprimées
duplication possible de [Comment supprimer une colonne d'une table existante?] (Http: // stackoverflow.com/questions/5626344/comment supprimer une colonne d'une table existante) –
En fait, l'autre question a été écrite 2 ans après celle-ci de sorte que ce serait le doublon. –