sql >> Base de Datos >  >> RDS >> Database

Cómo cambiar el nombre de una columna en SQL

Este artículo proporciona un ejemplo rápido de cómo cambiar el nombre de una tabla en SQL.

La mayoría de los principales RDBMS le permiten cambiar el nombre de una columna con ALTER TABLE declaración. SQL Server es una excepción.

Ejemplo (la mayoría de RDBMS)

La mayoría de los principales RDBMS le permiten cambiar el nombre de una columna de la siguiente manera.

Sintaxis:

ALTER TABLE table_name 
RENAME COLUMN old_column_name TO new_column_name;

Ejemplo:

ALTER TABLE Products 
RENAME COLUMN ProdDesc TO ProductDescription;

Aquí, cambiamos el nombre de una columna en Products tabla de ProdDesc a ProductDescription .

Eso debería funcionar en RDBMS, incluidos PostgreSQL, Oracle, SQLite, MySQL (a partir de 8.0) y MariaDB (a partir de 10.5.2+).

Versiones anteriores de MySQL y MariaDB

MySQL y MariaDB no siempre admitieron RENAME COLUMN sintaxis.

En MySQL anterior a la versión 8.0 y MariaDB anterior a 10.5.2+, deberá usar CHANGE COLUMN sintaxis en su lugar.

Sintaxis:

ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name datatype;

Ejemplo:

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

Tenga en cuenta que esta sintaxis requiere que vuelva a especificar la definición de la columna incluso si solo le cambia el nombre.

Esta sintaxis todavía se admite en versiones posteriores de MySQL y MariaDB, aunque ahora también tienen el anterior RENAME COLUMN sintaxis que lo hace más fácil.

Servidor SQL

En SQL Server, deberá usar sp_rename procedimiento almacenado para cambiar el nombre de una columna.

Sintaxis:

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

También tiene la opción de proporcionar los nombres de los parámetros:

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

Ejemplo:

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

O:

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