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> NOT NULL
| COLUMN <column_name> DEFAULT NULL
| COLUMN <column_name> ADD <default_spec>
| COLUMN <column_name> ALTER <default_spec>
| COLUMN <column_name> DROP DEFAULT
NOT NULLkann 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.
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.
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.
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.