Durch Angabe einer COLUMN-Change-Definition (column_change_definition) in der ALTER TABLE-Anweisung können Sie die Eigenschaften einer Spalte ändern.
<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
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).
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 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.
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 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.