Ändert eine Tabellendefinition.
ALTER TABLE table-name {
add-clause
| modify-clause
| drop-clause
| rename-clause
}
add-clause :
ADD { column-definition | table-constraint }
modify-clause :
ALTER column-definition | sync-constraint
drop-clause : DROP { column-name | CONSTRAINT constraint-name }
rename-clause : RENAME { new-table-name | [ old-column-name TO ] new-column-name | CONSTRAINT old-constraint-name TO new-constraint-name }
column-definition : column-name data-type [ [ NOT ] NULL ] [ DEFAULT column-default ] [ UNIQUE ]
column-default : GLOBAL AUTOINCREMENT [ ( number ) ] | AUTOINCREMENT | CURRENT DATE | CURRENT TIME | CURRENT TIMESTAMP | NULL | NEWID( ) | constant-value
table-constraint : [ CONSTRAINT constraint-name ] { fkey-constraint | unique-key-constraint } [ WITH MAX HASH SIZE integer ]
fkey-constraint : [ NOT NULL ] FOREIGN KEY [ role-name ] ( ordered-column-list ) REFERENCES table-name ( column-name, ... ) [ CHECK ON COMMIT ]
unique-key-constraint : UNIQUE ( ordered-column-list )
ordered-column-list : ( column-name [ ASC | DESC ], ... )
sync-constraint :SYNCHRONIZE {ON| OFF|ALL|DOWNLOAD}
add-Klausel Fügt einer Tabelle eine neue Spalte oder Tabellenintegritätsregel hinzu:
Fügt einer Tabelle eine neue Spalte oder Tabellenintegritätsregel hinzu:
ADD column-definition Fügt einer Tabelle eine neue Spalte hinzu. Wenn die Spalte einen Standardwert hat, werden alle Zeilen der neuen Spalte mit diesem Standardwert gefüllt. Eine Beschreibung der Schlüsselwörter und Unterklauseln für diese Klausel finden Sie unter CREATE TABLE-Anweisung [UltraLite].
ADD table-constraint Fügt einer Tabelle eine Integritätsregel hinzu. Mit dem optionalen Integritätsregelnamen können Sie später einzelne Integritätsregeln ändern oder löschen, anstatt die gesamte Tabellen-Integritätsregel zu löschen. Eine Beschreibung der Schlüsselwörter und Unterklauseln für diese Klausel finden Sie unter CREATE TABLE-Anweisung [UltraLite].
Beim Hinzufügen einer neuen Eindeutigkeits-Integritätsregel müssen alle Integritätsregelspalten nicht nullwertfähig sein. Um Eindeutigkeits-Integritätsregel hinzuzufügen, ändern Sie die Spalte auf NOT NULL.
Es ist nicht möglich, einen Primärschlüssel in UltraLite hinzuzufügen.
modify-Klausel Ändert eine einzelne Spaltendefinition. Sie können keine Primärschlüssel in der column-definition verwenden, wenn sie Teil einer ALTER-Anweisung sind. Wenn nötig werden die Daten in der geänderten Spalte in einen neuen Datentyp konvertiert. Wenn ein Konvertierungsfehler auftritt, schlägt der Vorgang fehl und die Tabelle bleibt unverändert. Eine umfassende Erklärung der table-definition finden Sie unter CREATE TABLE-Anweisung [UltraLite].
drop-Klausel Löscht eine Spalten- oder Tabellenintegritätsregel.
DROP column-name Löscht die Spalte aus der Tabelle. Wenn die Spalte in einem Index, einer Eindeutigkeits-Integritätsregel, einem Fremdschlüssel oder Primärschlüssel enthalten ist, muss das Objekt gelöscht werden, bevor die Spalte gelöscht werden kann.
DROP CONSTRAINT table-constraint Löscht die genannte Integritätsregel aus der Tabellendefinition. Eine umfassende Erklärung der table-constraint finden Sie unter CREATE TABLE-Anweisung [UltraLite].
Es ist nicht möglich, einen Primärschlüssel in UltraLite zu löschen.
rename-Klausel Ändert den Namen einer Tabelle, Spalte oder Integritätsregel:
RENAME new-table-name Ändert den Namen einer Tabelle in new-table-name. Alle Anwendungen, die den alten Tabellennamen benutzen, müssen geändert werden. Fremdschlüssel, denen automatisch der alte Tabellenname zugeordnet wurde, ändern nicht ihre Namen.
RENAME old-column-name TO new-column-name Ändert den Namen der Spalte in new-column-name. Alle Anwendungen, die den alten Spaltennamen benutzen, müssen geändert werden.
RENAME old-constraint-name TO new-constraint-name Ändert den Namen der Integritätsregel in new-constraint-name. Alle Anwendungen, die den alten Integritätsregelnamen benutzen, müssen geändert werden.
Es ist nicht möglich, einen Primärschlüssel in UltraLite umzubenennen.
Column-constraint (Spaltenintegritätsregel) Eine Spaltenintegritätsregel schränkt die Werte ein, die eine Spalte enthalten kann, um die Integrität der Daten in der Datenbank sicherzustellen. Eine Spaltenintegritätsregel kann nur UNIQUE sein.
UNIQUE Identifiziert eine oder mehrere Spalten, die jede Zeile einer Tabelle eindeutig identifizieren. Es kann in einer Tabelle nicht mehrere Zeilen mit denselben Werten in der bzw. allen benannten Spalte(n) geben. Eine Tabelle kann mehr als eine Eindeutigkeits-Integritätsregel besitzen.
Synchronisations-Integritätsregel-Klausel Geben Sie eine Synchronisations-Integritätsregel an, um zu ermitteln, ob eine Tabelle synchronisiert werden kann oder nicht, und ob alle Upload-Zeilen vorhanden sind, nur Änderungen in der Tabelle übertragen werden, oder keine Änderungen in der Tabelle übertragen werden.
SYNCHRONIZE ON Standardeinstellung: Die Tabelle kann synchronisiert werden und nur die Änderungen in der Tabelle werden im Upload übertragen.
SYNCHRONIZE OFF Die Tabelle kann nicht synchronisiert werden, und es wird ein Fehler gemeldet, wenn die Tabelle in eine Publikation aufgenommen wird.
SYNCHRONIZE ALL Die Tabelle kann synchronisiert werden und alle Zeilen in der Tabelle werden im Upload übertragen. Diese Integritätsregel wird von UltraLite Java Edition-Datenbanken nicht unterstützt.
SYNCHRONIZE DOWNLOAD Die Tabelle kann mit Änderungen in der konsolidierten Datenbank synchronisiert werden, jedoch werden lokale Änderungen im Upload übertragen.
Nur eine Tabellenintegritätsregel table-constraint oder Spaltenintegritätsregel column-constraint kann in einer ALTER TABLE-Anweisung hinzugefügt, geändert oder gelöscht werden.
Der Rollenname ist der Name des Fremdschlüssels. Die Hauptfunktion des Rollennamens role-name liegt in der Unterscheidung von zwei Fremdschlüsseln für dieselbe Tabelle. Alternativ dazu können Sie den Fremdschlüssel mit CONSTRAINT constraint-name benennen. Verwenden Sie jedoch nicht beide Methoden zur Benennung eines Fremdschlüssels.
Sie können eine Tabellen- oder Spaltenintegritätsregel nicht mit MODIFY ändern. Wenn Sie eine Integritätsregel ändern möchten, löschen Sie die alte Integritätsregel mit DELETE und fügen die neue Integritätsregel mit ADD hinzu.
ALTER TABLE kann nicht ausgeführt werden, wenn eine Anweisung, die die Tabelle betrifft, bereits von einer anderen Anforderung oder Abfrage referenziert wurde. UltraLite verarbeitet auch keine Anforderungen, die eine Tabelle referenzieren, wenn diese Tabelle gerade geändert wird. Außerdem ist es nicht möglich, ALTER TABLE auszuführen, wenn die Datenbank aktive Abfragen oder nicht festgeschriebene Transaktionen enthält.
Für UltraLite.NET-Benutzer: Sie können diese Anweisung nur ausführen, wenn Sie auch die Dispose-Methode für alle Datenobjekte ausführen (z.B. ULDataReader). Siehe ULBulkCopy.Dispose-Methode [UltraLite.NET].
Anweisungen werden nicht freigegeben, wenn gleichzeitig Schemaänderungen initiiert werden.
Die folgende Anweisung löscht die Street-Spalte aus einer fiktiven Tabelle namens MyEmployees.
ALTER TABLE MyEmployees DROP Street |
Das folgende Beispiel ändert die Street-Spalte der fiktiven Tabelle MyCustomers, damit sie ca. 50 Zeichen enthalten kann.
ALTER TABLE MyCustomers ALTER Street CHAR(50) |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |