## ALTER-Definition (alter_definition)

Durch Angabe einer ALTER-Definition (alter_definition) in der ALTER TABLE-Anweisung können Sie eine CONSTRAINT- oder eine Schlüsseldefinition ändern.

### Syntax

<alter_definition> ::=
ALTER CONSTRAINT <constraint_name> CHECK <search_condition>
| ALTER <key_definition>

### Beispiele

SQL-Tutorial, Primärschlüssel, Constraints

### Erläuterung

#### CONSTRAINT-Definition ändern: ALTER CONSTRAINT <constraint_name>

Der Constraint-Name muss eine CONSTRAINT-Definition der Tabelle identifizieren. Wenn keine Zeile der Tabelle der angegebenen Suchbedingung widerspricht, ersetzt diese die bestehende Suchbedingung der CONSTRAINT-Definition. Andernfalls scheitert die ALTER TABLE-Anweisung.

#### Schlüsseldefinition ändern: ALTER <key_definition>

Der durch die Schlüsseldefinition festgelegte Schlüssel ersetzt den bisherigen Schlüssel der Tabelle. Die in der Schlüsseldefinition angegebenen Spalten müssen Spalten der Tabelle identifizieren und die Schlüsseleigenschaft besitzen, d.h. keine Schlüsselspalte besitzt einen NULL-Wert und zwei Zeilen der Tabelle besitzen nicht in allen Schlüsselspalten die gleichen Werte.

Wenn eine Spalte des zu ersetzenden Schlüssels referenzierte Spalte referenced_column einer referentiellen CONSTRAINT-Definition ist, scheitert die ALTER TABLE-Anweisung.

Insbesondere bei Tabellen mit vielen Zeilen ist ein hoher Zeitbedarf zu erwarten, da umfangreiche Kopiervorgänge durchgeführt werden müssen.