Database
 sql >> Database >  >> RDS >> Database

Come rinominare una colonna in SQL

Questo articolo fornisce un rapido esempio di ridenominazione di una tabella in SQL.

La maggior parte dei principali RDBMS consente di rinominare una colonna con ALTER TABLE dichiarazione. SQL Server è un'eccezione.

Esempio (la maggior parte degli RDBMS)

La maggior parte dei principali RDBMS ti consente di rinominare una colonna come segue.

Sintassi:

ALTER TABLE table_name 
RENAME COLUMN old_column_name TO new_column_name;

Esempio:

ALTER TABLE Products 
RENAME COLUMN ProdDesc TO ProductDescription;

Qui, abbiamo rinominato una colonna in Products tabella da ProdDesc a ProductDescription .

Dovrebbe funzionare in RDBMS inclusi PostgreSQL, Oracle, SQLite, MySQL (a partire da 8.0) e MariaDB (a partire da 10.5.2+).

Versioni precedenti di MySQL e MariaDB

MySQL e MariaDB non hanno sempre supportato RENAME COLUMN sintassi.

In MySQL prima della versione 8.0 e MariaDB prima della 10.5.2+, dovrai usare CHANGE COLUMN sintassi invece.

Sintassi:

ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name datatype;

Esempio:

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

Tieni presente che questa sintassi richiede di ridefinire la definizione della colonna anche se la stai solo rinominando.

Questa sintassi è ancora supportata nelle versioni successive di MySQL e MariaDB, sebbene ora abbiano anche la precedente RENAME COLUMN sintassi che lo rende più facile.

SQL Server

In SQL Server, dovrai utilizzare sp_rename stored procedure per rinominare una colonna.

Sintassi:

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

Hai anche la possibilità di fornire i nomi dei parametri:

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

Esempio:

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

Oppure:

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