この記事では、SQLでテーブルの名前を変更する簡単な例を示します。
ほとんどの主要なRDBMSでは、列の名前をALTER TABLE
に変更できます。 声明。 SQLServerは例外です。
例(ほとんどのRDBMS)
ほとんどの主要なRDBMSでは、次のように列の名前を変更できます。
構文:
ALTER TABLE table_name
RENAME COLUMN old_column_name TO new_column_name;
例:
ALTER TABLE Products
RENAME COLUMN ProdDesc TO ProductDescription;
ここでは、Products
の列の名前を変更しました ProdDesc
のテーブル ProductDescription
へ 。
これは、PostgreSQL、Oracle、SQLite、MySQL(8.0以降)、MariaDB(10.5.2以降以降)などのRDBMSで機能するはずです。
MySQLとMariaDBの以前のバージョン
MySQLとMariaDBは、常にRENAME COLUMN
をサポートしているわけではありません 構文。
バージョン8.0より前のMySQL、および10.5.2以降より前のMariaDBでは、CHANGE COLUMN
を使用する必要があります。 代わりに構文。
構文:
ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name datatype;
例:
ALTER TABLE Products
CHANGE COLUMN ProdDesc ProductDescription varchar(500);
この構文では、名前を変更するだけの場合でも、列定義を再指定する必要があることに注意してください。
この構文は、以前のRENAME COLUMN
も含まれるようになりましたが、MySQLおよびMariaDBの新しいバージョンでも引き続きサポートされます。 簡単にする構文。
SQL Server
SQL Serverでは、sp_rename
を使用する必要があります 列の名前を変更するためのストアドプロシージャ。
構文:
sp_rename 'schema_name.table_name.old_column_name', 'new_column_name', 'COLUMN';
パラメータ名を指定するオプションもあります:
sp_rename
[ @objname = ] 'object_name' ,
[ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
例:
EXEC sp_rename 'dbo.Products.ProdDesc', 'ProductDescription', 'COLUMN';
または:
EXEC sp_rename
@objname = 'dbo.Products.ProdDesc',
@newname = 'ProductDescription',
@objtype = 'COLUMN';