## COLUMN-Change-Definition (column_change_definition)

Durch Angabe einer COLUMN-Change-Definition (column_change_definition) in der ALTER TABLE-Anweisung können Sie die Eigenschaften einer Spalte ändern.

### Syntax

<column_change_definition> ::=
COLUMN <column_name> ADD <default_spec>
| COLUMN <column_name> ALTER <default_spec>
| COLUMN <column_name> DEFAULT NULL
| COLUMN <column_name> DROP DEFAULT
| COLUMN <column_name> NOT NULL

### Erläuterung

#### ADD <default_spec>

Die Spalte darf vor Ausführung der ALTER TABLE-Anweisung mit ADD <default_spec> keine DEFAULT-Spezifikation default_spec besitzen. Durch ADD <default_spec> erhält die Spalte einen Vorschlagswert (DEFAULT-Wert).

#### ALTER <default_spec>

Durch ALTER <default_spec> wird der Vorschlagswert (DEFAULT-Wert) der Spalte geändert. Alle Zeilen, die in der Spalte den alten Vorschlagswert besitzen, bleiben unverändert.

#### DEFAULT NULL

DEFAULT NULL läßt einen NULL-Wert für die Spalte zu. Es wird nicht geprüft, ob ein NULL-Wert existierende CONSTRAINT-Definitionen der Tabelle verletzt. Daher kann das Einfügen des NULL-Wertes bei Ausführung einer INSERT- oder UPDATE-Anweisung scheitern.

#### DROP DEFAULT

Durch DROP DEFAULT wird die DEFAULT-Spezifikation der Spalte gelöscht. Wenn die Spalte Fremdschlüsselspalte einer referentiellen CONSTRAINT-Definition mit der DELETE-REGEL ON DELETE SET DEFAULT ist, scheitert die ALTER TABLE-Anweisung.

#### NOT NULL

NOT NULL kann nur angegeben werden, wenn die Spalte keine NULL-Werte enthält. Nach erfolgreicher Ausführung der ALTER TABLE-Anweisung ist es nicht mehr möglich, einen NULL-Wert in die Spalte einzufügen.