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

Comment renommer une colonne en SQL

Cet article fournit un exemple rapide pour renommer une table en SQL.

La plupart des principaux SGBDR vous permettent de renommer une colonne avec le ALTER TABLE déclaration. SQL Server est une exception.

Exemple (la plupart des SGBDR)

La plupart des principaux SGBDR vous permettent de renommer une colonne comme suit.

Syntaxe :

ALTER TABLE table_name 
RENAME COLUMN old_column_name TO new_column_name;

Exemple :

ALTER TABLE Products 
RENAME COLUMN ProdDesc TO ProductDescription;

Ici, nous avons renommé une colonne dans les Products table de ProdDesc à ProductDescription .

Cela devrait fonctionner dans les SGBDR, y compris PostgreSQL, Oracle, SQLite, MySQL (à partir de 8.0) et MariaDB (à partir de 10.5.2+).

Versions antérieures de MySQL et MariaDB

MySQL et MariaDB ne supportaient pas toujours le RENAME COLUMN syntaxe.

Dans MySQL avant la version 8.0 et MariaDB avant la version 10.5.2+, vous devrez utiliser le CHANGE COLUMN syntaxe à la place.

Syntaxe :

ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name datatype;

Exemple :

ALTER TABLE Products 
CHANGE COLUMN ProdDesc ProductDescription varchar(500);

Notez que cette syntaxe nécessite que vous respécifiiez la définition de la colonne même si vous ne faites que la renommer.

Cette syntaxe est toujours prise en charge dans les versions ultérieures de MySQL et MariaDB, bien qu'elles aient désormais également l'ancien RENAME COLUMN syntaxe qui le rend plus facile.

SQL Server

Dans SQL Server, vous devrez utiliser le sp_rename procédure stockée pour renommer une colonne.

Syntaxe :

sp_rename 'schema_name.table_name.old_column_name', 'new_column_name', 'COLUMN';

Vous avez également la possibilité de fournir les noms des paramètres :

sp_rename 
    [ @objname = ] 'object_name' , 
    [ @newname = ] 'new_name'   
    [ , [ @objtype = ] 'object_type' ]

Exemple :

EXEC sp_rename 'dbo.Products.ProdDesc', 'ProductDescription', 'COLUMN';

Ou :

EXEC sp_rename 
    @objname = 'dbo.Products.ProdDesc', 
    @newname = 'ProductDescription', 
    @objtype = 'COLUMN';