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

Suppression de colonnes dans MS SQL Server

La commande que vous recherchez est :

alter table tblName drop column columnName

tblName est le nom de la table et columnName est le nom de la colonne, mais il y a quelques choses que vous devrez peut-être faire en premier.

  • S'il existe des références de clé étrangère à la colonne, vous devez d'abord vous en débarrasser.
  • Si un index utilise cette colonne, vous devrez soit vous en débarrasser, soit l'ajuster pour ne pas utiliser cette colonne.

Gardez à l'esprit que les performances de cette commande ne sont pas nécessairement bonnes. Une option consiste à attendre une période d'indisponibilité pendant laquelle vous pouvez être certain que personne n'accédera à la base de données, renommer la table actuelle, puis utiliser create table et insert into ... select from pour transférer les colonnes que vous ne voulez pas supprimer.

L'une des dernières versions 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 existe une commande du type alter table ... drop unused columns qui est censé être exécuté en temps calme, qui fait le dur travail de le supprimer physiquement.

Cela a l'avantage de "disparaître" les colonnes immédiatement sans nuire aux performances de la base de données pendant les périodes de pointe.