Frage

Wenn ich möchte einfach eine Spalte umbenennen (nicht seine Art oder Einschränkungen ändern, nur den Namen) in einer SQL-Datenbank unter Verwendung von SQL, wie kann ich das tun? Oder ist es nicht möglich?

Dies ist für jede Datenbank SQL unterstützen behaupten, ich bin einfach für eine SQL-spezifische Abfrage suchen, unabhängig von der tatsächlichen Datenbank-Implementierung arbeiten.

War es hilfreich?

Lösung

Auf PostgreSQL (und vielen anderen RDBMS), können Sie es mit regelmäßiger ALTER TABLE Anweisung tun:

=> 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

Andere Tipps

Speziell für SQL Server, verwenden Sie sp_rename

USE AdventureWorks;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO

In MySQL, die Syntax ALTER TABLE ... CHANGE :

ALTER TABLE <table_name> CHANGE <column_name> <new_column_name> <data_type> ...

Beachten Sie, dass Sie kann nicht einfach umbenennen und die Art und Zwänge lassen wie es ist; Sie müssen den Datentyp und Einschränkungen nach dem neuen Namen des Spalts erneut eingeben.

Ich denke, das ist der einfachste Weg Spaltennamen zu ändern.

SP_RENAME 'TABLE_NAME.OLD_COLUMN_NAME','NEW_COLUMN_NAME'

Leider für eine Datenbank unabhängige Lösung, müssen Sie alles über die Spalte kennen. Wenn es in anderen Tabellen als Fremdschlüssel verwendet wird, müssen sie auch geändert werden.

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;

Für den einfachsten Fällen (keine Einschränkungen, Trigger, Indizes oder Schlüssel), werden die oben genannten drei Linien nehmen. Für etwas komplizierter kann es sehr chaotisch, wie Sie die fehlenden Teile zu füllen.

jedoch, wie oben erwähnt, gibt es einfachere Datenbank spezifische Methoden, wenn Sie wissen, welche Datenbank Sie vor der Zeit ändern müssen.

In Informix, können Sie:

RENAME COLUMN TableName.OldName TO NewName;

Dies wurde implementiert, bevor der SQL-Standard das Problem angesprochen - wenn es in dem SQL-Standard gerichtet. Meine Kopie des SQL 9075: 2003 Standard zeigt es nicht als Standard zu sein (unter anderem ist RENAME nicht eines des Schlüsselwort). Ich weiß nicht, ob es tatsächlich in SQL 9075 ist: 2008.

In SQL Server können Sie

exec sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'

oder

sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'

Sie können den folgenden Befehl verwenden, um die Spalte einer Tabelle in SQL Server umbenennen:

exec sp_rename 'TableName.OldColumnName', 'New colunmName'

ALTER TABLE ist Standard-SQL. Aber es ist nicht vollständig implementiert in vielen Datenbanksystemen.

Der Standard ALTER TABLE würde, aber das ist nicht unbedingt mit allen DBMS unterstützt Sie wahrscheinlich zu begegnen sind, so dass, wenn Sie suchen eine allumfassende Syntax, können Sie von Glück.

Alternativ SQL, können Sie dies in Microsoft SQL Server Management Studio tun, aus der Tabelle Design Platte.

Erste Way

Langsam Doppelklick auf die Spalte. Der Spaltenname wird ein editierbares Textfeld werden.

Second Way

  

SqlManagement Studio >> DataBases >> Tabellen >> specificTable >> Spalte   Ordner >> Rechtsklick auf Spalte >> Reman

Third Way

Tisch >> Rechtsklick >> Design

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top