SQLを使用してSQLデータベースで列の名前を変更するだけの場合(列のタイプや制約を変更せず、名前だけを変更する場合)、どうすればよいですか?それとも不可能ですか?
これは、SQLをサポートしていると主張するすべてのデータベースのためのものです。実際のデータベースの実装に関係なく機能するSQL固有のクエリを探しています。
SQLを使用してSQLデータベースで列の名前を変更するだけの場合(列のタイプや制約を変更せず、名前だけを変更する場合)、どうすればよいですか?それとも不可能ですか?
これは、SQLをサポートしていると主張するすべてのデータベースのためのものです。実際のデータベースの実装に関係なく機能するSQL固有のクエリを探しています。
回答:
PostgreSQL(および他の多くのRDBMS)では、通常のALTER TABLE
ステートメントでそれを行うことができます。
=> 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
sp_rename
、ガルベジアンの回答に従って使用してください:stackoverflow.com/a/174586/834431
特にSQL Serverの場合は、 sp_rename
USE AdventureWorks;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO
MySQLでは、構文はALTER TABLE ... CHANGE
次のとおりです。
ALTER TABLE <table_name> CHANGE <column_name> <new_column_name> <data_type> ...
名前を変更して、タイプと制約をそのままにしておくことはできません。列の新しい名前の後にデータ型と制約を再入力する必要があります。
RENAME
構文でタイプ/制約に影響を与えることなく、列の名前を変更できます。MySQLの列の名前を変更
残念ながら、データベースに依存しないソリューションの場合、列に関するすべてを知る必要があります。他のテーブルで外部キーとして使用されている場合は、それらも変更する必要があります。
ALTER TABLE MyTable ADD MyNewColumn OLD_COLUMN_TYPE;
UPDATE MyTable SET MyNewColumn = MyOldColumn;
-- add all necessary triggers and constraints to the new column...
-- update all foreign key usages to point to the new column...
ALTER TABLE MyTable DROP COLUMN MyOldColumn;
非常に単純なケース(制約、トリガー、インデックス、またはキーがない場合)では、上記の3行がかかります。より複雑なものについては、足りない部分を埋めるときに非常に面倒になる可能性があります。
ただし、前述のように、事前に変更する必要があるデータベースがわかっている場合は、より簡単なデータベース固有の方法があります。
Informixでは、以下を使用できます。
RENAME COLUMN TableName.OldName TO NewName;
これは、SQL標準が問題に対処する前に実装されました-SQL標準で対処する場合。SQL 9075:2003標準の私のコピーでは、標準として表示されません(とりわけ、RENAMEはキーワードの1つではありません)。実際にSQL 9075:2008にあるかどうかはわかりません。
RENAME COLUMN TableName.OldName TO NewName;
www-01.ibm.com/support/knowledgecenter/SSGU8G_11.50.0/...
次のコマンドを使用して、SQL Serverの任意のテーブルの列の名前を変更できます。
exec sp_rename 'TableName.OldColumnName', 'New colunmName'
ALTER TABLEは標準SQLです。しかし、それは多くのデータベースシステムに完全に実装されていません。
の代わりにSQL
、テーブルデザインパネルからMicrosoft SQL Server Management Studioでこれを行うことができます。
最初の方法
列をゆっくりとダブルクリックします。列名が編集可能なテキストボックスになります。
二番目の方法
SqlManagement Studio >> DataBases >> tables >> specificTable >> Column Folder >> Right Click on column >> Reman
第三の方法
テーブル>> RightClick >>デザイン