Database Reference
In-Depth Information
Sofern eine Tabelle mit einem zusätzlichen „NOT NULL“-Attri-
but erweitert werden soll, in der sich schon Daten befinden,
wird SQL eine Fehlermeldung ausgeben. Es würden sonst näm-
lich allen Datensätzen auf einen Schlag Nullwerte aufge-
zwungen. Dies können wir verhindern, indem „NOT NULL“
weggelassen wird. Anschließend müssen alle bestehenden Da-
tensätze mit dem entsprechenden Attributwert versehen wer-
den, und schließlich kann die Tabelle mit dem Befehl „ALTER
TABLE ... MODIFY“ geändert werden, wie dies Bild 6.4 zeigt.
Bestehende Attribute ändern:
Bild 6.4:
Attribute einer
Tabelle ändern
ALTER TABLE Tabellenname MODIFY
( Bestehendes_Attribut neuer_Datentyp [NOT NULL], ... );
Beispiel:
ALTER TABLE Personen MODIFY
(Lohnstufe NUMERIC(2) NULL);
Hier gilt es zu beachten, dass die Spaltenbreite (abhängig vom
Datentyp) nur dann reduziert werden darf, wenn alle Attribut-
werte von bereits existierenden Datensätzen noch dargestellt
werden können. Ein Attribut „Name“ mit dem Wert „Müller“
muss mindestens sechs Zeichen breit sein (CHAR(6)), weil der
Name „Müller“ aus sechs Zeichen besteht. Andernfalls wird der
Name entsprechend gekürzt.
Achtung: Nicht alle Datenbanksysteme unterstützen MODIFY.
Beim MS SQL-Server Version 6.5 konnten bestehende Attribute
nicht nachträglich geändert werden. Dort muss zuerst eine
neue Tabelle erstellt werden. Anschließend sind alle Daten-
sätze aus der alten Tabelle in die neue Tabelle zu kopieren,
wobei gleichzeitig der Datentyp konvertiert werden muss. Die-
ses Verfahren wird zwar auch bei MS SQL-Server ab Version 7
angewendet, doch der Benutzer merkt nichts davon, da es im
Hintergrund als Transaktion abläuft.
6.1.3
Tabellenattribute indizieren
Die Indizierung von Tabellenattributen wird in folgenden Situ-
ationen eingesetzt (siehe auch Abschnitt 4.6.2):
a) Ein Attribut oder eine Attributkombination darf nur ein-
deutige Werte annehmen können.
Search WWH ::




Custom Search