126 votes

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

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

C'est pour toute base de données prétendant prendre en charge SQL, je cherche simplement une requête spécifique à SQL qui fonctionnera indépendamment de l'implémentation réelle de la base de données.

131voto

Galwegian Points 29966

Spécifiquement pour SQL Server, utilisez sp_rename

USE AdventureWorks;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO

106voto

bortzmeyer Points 12246

Sur PostgreSQL™ (et beaucoup d'autres SGBDR), vous pouvez le faire avec une déclaration ALTER TABLE régulière :

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

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

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

39voto

jaspher chloe Points 499

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.

22voto

Kunal Relan Points 233

Je pense que c'est la meilleure façon de changer le nom de la colonne.

SP_RENAME 'TABLE_NAME.OLD_COLUMN_NAME','NEW_COLUMN_NAME'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X