SQL を使用している SQL データベースで、単純に列の名前を変更したい (型や制約を変更するのではなく、名前だけを変更する) 場合、どうすればよいですか? それとも無理ですか?
これは、SQL をサポートすると主張するすべてのデータベースを対象としています。実際のデータベースの実装に関係なく機能する SQL 固有のクエリを探しているだけです。
特に SQL Server の場合は、次を使用しますsp_rename
USE AdventureWorks;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO
ALTER TABLE
PostgreSQL(および他の多くのRDBMS)では、通常のステートメントでそれを行うことができます。
=> 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
MySQL では、構文はALTER TABLE ... CHANGE
次のとおりです。
ALTER TABLE <table_name> CHANGE <column_name> <new_column_name> <data_type> ...
名前を変更して型と制約をそのままにしておくことはできないことに注意してください。列の新しい名前の後に、データ型と制約を再入力する必要があります。
残念ながら、データベースに依存しないソリューションの場合、列に関するすべてを知る必要があります。他のテーブルで外部キーとして使用されている場合は、それらも変更する必要があります。
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 行が必要です。より複雑なものの場合、不足している部分を埋めると、非常に面倒になる可能性があります。
ただし、前述のように、前もって変更する必要があるデータベースがわかっている場合は、より単純なデータベース固有の方法があります。
これが列名を変更する最も簡単な方法だと思います。
SP_RENAME 'TABLE_NAME.OLD_COLUMN_NAME','NEW_COLUMN_NAME'
SQLサーバーでは、使用できます
exec sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'
また
sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'
Informix では、以下を使用できます。
RENAME COLUMN TableName.OldName TO NewName;
これは、SQL 標準が問題に対処する前に実装されました (SQL 標準で対処されている場合)。SQL 9075:2003 標準の私のコピーでは、それが標準として表示されません (特に、RENAME はキーワードの 1 つではありません)。実際に SQL 9075:2008 にあるかどうかはわかりません。
ALTERTABLEは標準SQLです。ただし、多くのデータベースシステムでは完全には実装されていません。
標準はALTER TABLE
ですが、遭遇する可能性のあるすべての DBMS で必ずしもサポートされているとは限りません。
の代わりにSQL
、テーブルのデザイン パネルから、Microsoft SQL Server Management Studio でこれを行うことができます。
最初の道
列をゆっくりとダブルクリックします。列名が編集可能なテキスト ボックスになります。
第二の道
SqlManagement Studio>>DataBases>>tables>>specificTable>>Column Folder>>列を右クリック>>Reman
第三の道
表 >> 右クリック >> デザイン