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