Comment puis-je renommer une colonne dans une table de base de données en utilisant SQL?

si je souhaite simplement renommer une colonne (sans changer son type ou ses contraintes, juste son nom) dans une base de données SQL en utilisant SQL, comment faire? Ou n'est-il pas possible?

c'est pour toute base de données prétendant supporter SQL, je suis simplement à la recherche d'une requête spécifique à SQL qui fonctionnera indépendamment de l'implémentation réelle de la base de données.

93
demandé sur MetroidFan2002 2008-10-06 18:44:41

11 réponses

sur PostgreSQL( et beaucoup D'autres RDBM), vous pouvez le faire avec la déclaration régulière ALTER TABLE :

essais=> SELECT * FROM Test1;
 id | foo | bar 
----+-----+-----
  2 |   1 |   2

essais=> ALTER TABLE Test1 RENAME COLUMN foo TO baz;
ALTER TABLE

essais=> SELECT * FROM Test1;
 id | baz | bar 
----+-----+-----
  2 |   1 |   2
83
répondu bortzmeyer 2015-09-18 10:37:56

spécifiquement pour SQL Server, utiliser sp_rename

USE AdventureWorks;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO
105
répondu Galwegian 2014-10-03 11:05:16

dans MySQL, la syntaxe est ALTER TABLE ... CHANGE :

ALTER TABLE <table_name> CHANGE <column_name> <new_column_name> <data_type> ...

notez que vous ne pouvez pas simplement renommer et laisser le type et les contraintes tels quels; vous devez retaper le type de données et les contraintes après le nouveau nom de la colonne.

29
répondu jaspher chloe 2015-06-05 16:43:16

je pense que c'est la façon la plus facile de changer le nom de la colonne.

SP_RENAME 'TABLE_NAME.OLD_COLUMN_NAME','NEW_COLUMN_NAME'
18
répondu Kunal Relan 2017-05-16 12:13:06

malheureusement, pour une solution indépendante de la base de données, vous aurez besoin de tout savoir sur la colonne. Si elle est utilisée dans d'autres tableaux de clé étrangère, ils auront besoin d'être modifié.

ALTER TABLE MyTable ADD MyNewColumn OLD_COLUMN_TYPE;
UPDATE MyTable SET MyNewColumn = MyOldColumn;
-- add all necessary triggers and constraints to the new column...
-- update all foreign key usages to point to the new column...
ALTER TABLE MyTable DROP COLUMN MyOldColumn;

pour les cas les plus simples (pas de contraintes, déclencheurs, index ou clés), il prendra les 3 lignes ci-dessus. Pour quelque chose de plus compliqué, il peut être très salissant que vous remplissez les parties manquantes.

toutefois, comme indiqué ci-dessus, il y a des méthodes spécifiques de base de données plus simples si vous savez quelle base de données vous devez modifier à l'avance.

17
répondu Shadow Man 2013-10-25 01:56:21

dans Informix, vous pouvez utiliser:

RENAME COLUMN TableName.OldName TO NewName;

cela a été mis en œuvre avant que la norme SQL ne règle la question - si elle est traitée dans la norme SQL. Ma copie du standard SQL 9075: 2003 ne le montre pas comme étant standard (entre autres choses, RENAME n'est pas un des mots clés). Je ne sais pas si C'est en fait en SQL 9075:2008.

9
répondu Jonathan Leffler 2014-12-16 12:45:12

dans sql server vous pouvez utiliser

exec sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'

ou

sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'
4
répondu Bimzee 2016-10-13 11:04:08

ALTER TABLE is standard SQL. Mais il n'est pas complètement implémenté dans de nombreux systèmes de bases de données.

3
répondu Paul Tomblin 2008-10-06 15:02:19

vous pouvez utiliser la commande suivante pour renommer la colonne de N'importe quelle table dans le serveur SQL:

exec sp_rename 'TableName.OldColumnName', 'New colunmName'
3
répondu Prabhat Kumar Yadav 2018-01-20 17:30:55

le standard serait ALTER TABLE , mais ce N'est pas nécessairement supporté par tous les SGBD que vous êtes susceptible de rencontrer, donc si vous êtes à la recherche d'une syntaxe globale, vous pourriez être sans chance.

2
répondu Rob 2008-10-10 22:10:30

alternativement à SQL , vous pouvez le faire dans Microsoft SQL Server Management Studio, à partir du Panneau de configuration de la table.

Première Manière

double-cliquez lentement sur la colonne. Le nom de la colonne deviendra une zone de texte modifiable.

Deuxième Manière

SqlManagement Studio>>bases de données>>tables>>specificTable>>colonne Dossier>>Clic Droit sur la colonne>>Remis à neuf

Troisième Voie

Table>>Clic Droit>>Conception

0
répondu Uzair Xlade 2014-11-13 10:27:57