Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » UltraLite - Datenbankverwaltung » UltraLite-SQL-Referenz » UltraLite-SQL-Anweisungen

 

UltraLite ALTER TABLE-Anweisung

Mit dieser Anweisung ändern Sie eine Tabellendefinition.

Syntax
ALTER TABLE Tabellenname {
add-Klausel 
| modify-Klausel 
| drop-Klausel 
| rename-Klausel 
}
add-Klausel :
 ADD { Spaltendefinition | Tabellenintegritätsregel }
modify-Klausel :
ALTER Spaltendefinition
drop-Klausel :
DROP { Spaltenname | CONSTRAINT Integritätsregelname }
rename-Klausel :   
RENAME { 
   neuer_Tabellenname   
   | [ alter_Spaltenname TO ] neuer_Spaltenname
   | CONSTRAINT alter_Integritätsregelname TO neuer_Integritätsregelname }
Spaltendefinition :
Spaltenname Datentyp
[ [ NOT ] NULL ] 
[ DEFAULT Spalten-Standardwert ] 
[ UNIQUE ]
Spalten-Standardwert :
GLOBAL AUTOINCREMENT [ ( Zahl ) ] 
| AUTOINCREMENT 
| CURRENT DATE 
| CURRENT TIME 
| CURRENT TIMESTAMP 
| NULL 
| NEWID( ) 
| Konstantenwert
Tabellenintegritätsregel :
[ CONSTRAINT Integritätsregelname ] 
{ Fremdschlüssel-Integritätsregel | Eindeutigkeitsschlüsselintegritätsregel } 
[ WITH MAX HASH SIZE Ganzzahl ]
Fremdschlüssel-Integritätsregel :
[ NOT NULL ] FOREIGN KEY [ Rollenname ]  (sortierte_Spaltenliste) 
REFERENCES Tabellenname (Spaltenname, … ) 
[ CHECK ON COMMIT ] 
Eindeutigkeitsschlüsselintegritätsregel :
 UNIQUE(sortierte_Spaltenliste )
 sortierte_Spaltenliste :
(Spaltenname [ ASC | DESC ], ... )
Parameter

add-Klausel   Fügt einer Tabelle eine neue Spalte oder Tabellenintegritätsregel hinzu:

  • ADD Spaltendefinition   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 UltraLite CREATE TABLE-Anweisung.

  • ADD Tabellenintegritätsregel   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 Tabellenintegritätsregel zu ändern. Eine Beschreibung der Schlüsselwörter und Unterklauseln für diese Klausel finden Sie unter UltraLite CREATE TABLE-Anweisung.

    Hinweis

    Es ist nicht möglich, einen Primärschlüssel in UltraLite hinzuzufügen.

modify-Klausel   Ändert eine einzelne Spaltendefinition. Beachten Sie, dass es nicht möglich ist, Primärschlüssel in der Spaltendefinition zu verwenden, wenn sie Teil einer ALTER-Anweisung ist. Eine umfassende Erklärung der Tabellendefinition finden Sie unter UltraLite CREATE TABLE-Anweisung.

drop-Klausel   Löscht eine Spalten- oder Tabellenintegritätsregel.

  • DROP Spaltenname   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 Integritätsregelname   Löscht die genannte Integritätsregel aus der Tabellendefinition. Eine umfassende Erklärung der Tabellenintegritätsregel finden Sie unter UltraLite CREATE TABLE-Anweisung.

    Hinweis

    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 neuer_Tabellenname   Ändert den Namen einer Tabelle in neuer_Tabellenname. Beachten Sie, dass alle Anwendungen, die den alten Tabellennamen benutzen, ebenfalls geändert werden müssen. Fremdschlüssel, denen automatisch der alte Tabellenname zugeordnet wurde, ändern nicht ihre Namen.

  • RENAME alter_Spaltenname TO neuer_Spaltenname   Ändert den Namen der Spalte in neuer_Spaltenname. Beachten Sie, dass alle Anwendungen, die den alten Spaltennamen benutzen, ebenfalls geändert werden müssen.

  • RENAME alter_Integritätsregelname TO neuer_Integritätsregelname   Ändert den Namen der Integritätsregel in neuer_Integritätsregelname. Beachten Sie, dass alle Anwendungen, die den alten Integritätsregelnamen benutzen, ebenfalls geändert werden müssen.

    Hinweis

    Es ist nicht möglich, einen Primärschlüssel in UltraLite umzubenennen.

Spaltenintegritätsregel   Eine Spalten-Integritä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.

Bemerkungen

Nur eine Tabellenintegritätsregel oder Spaltenintegritätsregel 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 liegt in der Unterscheidung von zwei Fremdschlüsseln für dieselbe Tabelle. Alternativ dazu können Sie den Fremdschlüssel mit CONSTRAINT Integritätsregelname 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.

Eine Tabelle, deren Name mit nosync endet, kann nur in einen Tabellennamen umbenannt werden, der ebenfalls mit nosync endet. Weitere Hinweise finden Sie unter Nosync-Tabellen in UltraLite.

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). Weitere Hinweise finden Sie unter Dispose-Methode.

Anweisungen werden nicht freigegeben, wenn gleichzeitig Schemaänderungen initiiert werden. Weitere Hinweise finden Sie unter Schemaänderungen mit DDL-Anweisungen.

Siehe auch
Beispiele

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
MODIFY Street CHAR(50);