Anfang des Inhaltsbereichs

MODIFY-Definition (modify_definition) Dokument im Navigationsbaum lokalisieren

Durch Angabe einer MODIFY-Definition ( modify_definition ) in der ALTER TABLE-Anweisung können Sie Datentypen und Eigenschaften von Tabellenspalten ändern.

Syntax

<modify_definition> ::= MODIFY (<column_name> [<data_type>] [<column_attributes>]...)

column_name, data_type, column_attributes

Die Klammern können entfallen, wenn die MODIFY-Definition nur einen Spaltennamen ( column_name ) enthält.

Erläuterung

Jeder Spaltenname muß eine Spalte der in der ALTER TABLE-Anweisung angegebenen Basistabelle bezeichnen.

Spaltenattribute (column_attributes)

Es sind nur folgende Spaltenattribute erlaubt:

Datentypen (data_type)

Wenn keine DEFAULT-Spezifikation angegeben wird und für die entsprechende Spalte eine DEFAULT-Spezifikation definiert ist, dann muß diese zum Datentyp kompatibel sein.

Datentyp CHAR(n), VARCHAR(n): Die entsprechende Spalte muß den Datentyp CHAR(n), VARCHAR(n), DATE, TIME oder TIMESTAMP besitzen. Die Tabelle darf in diesem Fall keine Zeile enthalten, die in der Spalte einen Wert einer Länge größer als n besitzt.
Falls eine Spalte vor der Ausführung der ALTER TABLE-Anweisung das Codeattribut UNICODE besaß und das neue Codeattribut von UNICODE verschieden ist, muß eine Transformation in das neue Codeattribut möglich sein.

Datentyp DATE: Die entsprechende Spalte muß den Datentyp CHAR(n), VARCHAR(n) oder DATE besitzen. Alle Zeilen der Tabelle müssen in der Spalte einen Wert enthalten, der einem Datum in einem beliebigen vom Datenbanksystem unterstützten Datumsformat entspricht.

Datentyp FIXED(n,m): Die entsprechende Spalte muß den Datentyp FIXED(n,m), FLOAT, INT oder SMALLINT besitzen. Die Tabelle darf in diesem Fall keine Zeile enthalten, die in der Spalte einen Wert mit mehr als (n-m) Vorkomma- oder m Nachkommastellen besitzt.

Datentyp FLOAT(n): Die entsprechende Spalte muß den Datentyp FIXED(n,m), FLOAT(n), INT oder SMALLINT besitzen.

Datentyp INT: Die entsprechende Spalte muß den Datentyp FIXED(n,m), FLOAT(n), INT oder SMALLINT besitzen. Die Tabelle darf in diesem Fall nur Zeilen enthalten, die in der Spalte ganzzahlige Werte im Bereich von –2147483648 bis 2147483647 enthalten.

Datentyp SMALLINT: Die entsprechende Spalte muß den Datentyp FIXED(n,m), FLOAT(n), INT oder SMALLINT besitzen. Die Tabelle darf in diesem Fall nur Zeilen enthalten, die in der Spalte ganzzahlige Werte im Bereich von –32768 bis 32767 enthalten.

Datentyp TIME: Die entsprechende Spalte muß den Datentyp CHAR(n), VARCHAR(n) oder TIME besitzen. Alle Zeilen der Tabelle müssen in der Spalte einen Wert enthalten, der einem Zeitwert in einem beliebigen vom Datenbanksystem unterstützten Zeitformat entspricht.

Datentyp TIMESTAMP: Die entsprechende Spalte muß den Datentyp CHAR(n), VARCHAR(n) oder TIMESTAMP besitzen. Alle Zeilen der Tabelle müssen in der Spalte einen Wert enthalten, der einem Zeitstempelwert in einem beliebigen vom Datenbanksystem unterstützten Zeitstempelformat entspricht.

Spaltenattribut NULL: In die entsprechende Spalte kann durch nachfolgende INSERT- oder UPDATE-Anweisungen ein NULL-Wert eingetragen werden.

Wenn eine der durch column_name spezifizierten Spalten in einer Suchbedingung der Tabelle enthalten ist, dann muß diese Spalte auch nach einer Datentypänderung eine legale Suchbedingung definieren.

Sonstiges

Die Angabe einer MODIFY-Definition kann abhängig von der Art der Änderung dazu führen, daß die Tabelle umkopiert werden muß und/oder daß Indizes neu aufgebaut werden müssen. In diesen Fällen ist mit einer entsprechend langen Laufzeit zu rechnen.

Wenn die Tabelle umkopiert wird und die Tabelle als gelöscht markierte Spalten besitzt, dann werden diese aus dem Katalog und den Zeilen der Tabelle entfernt und der Platzbedarf der Tabelle wird entsprechend reduziert.

Ende des Inhaltsbereichs