TurboSQL Guide

ALTER TABLE Befehl

Previous  Top  Next

Fügt einer bestehenden Tabelle Spalten hinzu und löscht Spalten aus ihr.

Syntax

ALTER TABLE table_reference
[LEVEL level_number]
[ENCRYPTION encryption_algorithm]
[PASSWORD password]
[COLLATE collation_name]
DROP column_reference |
DROP CONSTRAINT constraint_name |
ADD column_definition |
ADD CONSTRAINT constraint_definition |
RENAME column_reference TO column_reference |
MODIFY column_definition

Beschreibung

Verwenden Sie die Anweisung ALTER TABLE, um das Schema einer bestehenden Tabelle zu ändern. Die Beschreibungen für column_definition and constraint_definition lesen Sie bitte in  CREATE TABLE Befehl.  Es gibt sechs verschiedene Optionen:

Löschen einer existierenden Spalte mit DROP:

ALTER TABLE Orders DROP Destination

column_reference muss sich auf eine existierende Spalte beziehen.

Löschen einer existierenden Gültigkeitsbedingung:

ALTER TABLE Orders DROP CONSTRAINT sys_Primary

Hinzufügen einer neuen Spalte mit ADD:

ALTER TABLE Orders ADD Date_of_delivery DATE

Der Name der neuen Spalte darf in der Tabelle noch nicht vorkommen.

Hinzufügen einer neuen Gültigkeitsbedingung mit ADD:

ALTER TABLE Orders ADD CONSTRAINT RecentDateConstraint CHECK (Date_of_delivery > 1.1.2000)

ALTER TABLE Orders ADD FOREIGN KEY (Customer) REFERENCES Customer (CustNo)

Ändern des Namens einer existierenden Spalte mit RENAME:

ALTER TABLE Orders RENAME Date_of_delivery TO DateOfDelivery

Die erste column_reference ist der Name der existierenden Spalte, die zweite ist der neue Name für diese Spalte. Umbenennen einer Spalte verändert die enthaltenen Daten nicht.

Ändern des Datentyps einer existierenden Spalte mit MODIFY:

ALTER TABLE Orders MODIFY DateOfDelivery TIMESTAMP

column_reference muss sich auf eine existierende Spalte beziehen. Der Typ der Spalte kann in einen der verfügbaren Datentypen konvertiert werden. Die enthaltenen Daten werden erhalten, falls möglich.

Die Parameter level_number, password, key und language haben dieselbe Bedeutung wie in CREATE TABLE. Falls password und key weggelassen werden, bleiben aktuellen Einstellungen erhalten.  Um die Verschlüsselung aufzuheben, ist sie auf NONE zu setzen.

Diese Anweisung hebt die Verschlüsselung auf:

ALTER TABLE Orders ENCRYPTION None

Anmerkung: Falls entweder Passwort oder Verschlüsselungsart geändert werden soll, muss aus Sicherheitsgründen beides, Passwort und Verschlüsselung angegeben werden.

Es ist möglich, mehrere Änderungen in beliebiger Reihenfolge in der selben Anweisung zu kombinieren:

ALTER TABLE Orders
ADD Date_of_delivery DATE,
DROP Destination,
ADD DeliveryAddress CHAR(200),
RENAME Customer TO CustomerRef

Anmerkung: RENAME und MODIFY sind proprietäre Erweiterungen zu SQL-92.

Kompatibilität:

Die COLLATE-Klausel wird ab Table Level 6 unterstützt.

Die SET Klausel der Spaltendefinition wird erst ab Tabellen-Level 3 unterstützt.

Siehe auch

Spalten Datentypen