Anfang des Inhaltsbereichs

Funktionsdokumentation Anpassung von Datenbank-Strukturen  Dokument im Navigationsbaum lokalisieren

Verwendung

Damit ein korrekter Zugriff von ABAP-Programmen auf Datenbanktabellen möglich ist, muss das Laufzeitobjekt der Tabelle zur Struktur der Tabelle auf der Datenbank passen. Bei einer Änderung der Tabelle im ABAP Dictionary muss somit bei der Aktivierung (bei der das Laufzeitobjekt neu geschrieben wird) sichergestellt werden, dass die Datenbank-Struktur der Tabelle an die Änderung im ABAP Dictionary angepasst wird. Dies wird in der folgenden Abbildung erläutert.

Diese Grafik wird im zugehörigen Text erklärt

Funktionsumfang

Bei einigen Änderungen im ABAP Dictionary ist keine Änderung der Datenbank-Struktur notwendig. Zum Beispiel muss die Datenbanktabelle nicht an eine Änderung der Feldreihenfolge (außer bei Schlüsselfeldern) im ABAP Dictionary angepasst werden. Die Feldreihenfolge im ABAP Dictionary muss nicht mit der Feldreihenfolge auf der Datenbank übereinstimmen. In diesem Fall wird einfach die geänderte Struktur im ABAP Dictionary aktiviert und die Datenbank-Struktur bleibt unverändert. Das Laufzeitobjekt muss jedoch umgeschrieben werden.

Die Anpassung der Datenbankstruktur einer Tabelle an ihre veränderte ABAP-Dictionary-Definition kann auf drei Arten erfolgen:

      Durch Löschen und Neuanlegen der Datenbanktabelle

Die auf der Datenbank vorhandene Tabelle wird gelöscht. Danach wird die überarbeitete Version der Tabelle im ABAP Dictionary aktiviert und auf der Datenbank erneut angelegt.

Achtung

Die Daten in der Tabelle gehen dabei verloren.

      Durch Änderung des Datenbank-Katalogs (ALTER TABLE)

Es wird lediglich die Definition der Tabelle auf der Datenbank geändert. Bei der Verwendung von ALTER TABLE sind in einigen Fällen weitere Aktionen möglich. Wenn Sie z.B. eine Null-Spalte in eine Not-Null-Spalte ändern, sind zeitaufwändige Aktionen die Folge, wie:

UPDATE""

SET "F01"='…'

WHERE 'F01' IS NULL

Wenn Sie ALTER TABLE verwenden, bleiben die Daten in der Tabelle erhalten (bei einigen Datenbanken wird bei Aufnahme einer Not-Null-Spalte der Standardwert in jede Zeile geschrieben).

Achtung

Die Indizes zur Tabelle müssen neu aufgebaut werden.

      Durch eine Umsetzung der Tabelle (weitere Informationen finden Sie unter Ablauf einer Umsetzung)

Die Datenbanktabelle wird umbenannt und dient als temporärer Zwischenspeicher für die Daten. Dann wird die überarbeitete Version der Tabelle im ABAP Dictionary aktiviert und auf der Datenbank angelegt. Anschließend werden die Daten aus dem temporären Zwischenspeicher in die neue Datenbanktabelle zurückgeladen (mit MOVE-CORRESPONDING) und die Indizes zur Tabelle werden neu aufgebaut.

Welche dieser Aktionen vom System in einem konkreten Fall angewandt wird, hängt ab von

      der Art der Strukturänderung

      dem verwendeten Datenbank-System

      der Frage, ob schon Daten in der Tabelle vorhanden sind

Enthält die Tabelle keine Daten, so wird die vorhandene Tabelle auf der Datenbank gelöscht und neu angelegt. Sind Daten in der Tabelle vorhanden, so wird versucht, die Strukturänderung durch ein ALTER TABLE durchzuführen. Falls das verwendete Datenbanksystem die Strukturänderung nicht durch ein ALTER TABLE abbilden kann, wird eine Umsetzung durchgeführt.

Eine Umsetzung ist die ressourenintensivste Art der Strukturanpassung. Aber auch bei Strukturänderungen durch Änderungen des Datenbank-Katalogs können in einigen Datenbank-Systemen aufwendige interne Reorganisationen der Daten ablaufen. Informationen über die in der Datenbank ablaufenden Prozesse bei Strukturänderungen durch ALTER TABLE finden Sie in der Dokumentation Ihres Datenbank-Systems.

Achtung

Die Datenbank-Struktur darf nicht im Produktivbetrieb angepasst werden. Zumindest müssen alle Applikationen, die auf die Tabelle zugreifen, während der Strukturanpassung deaktiviert sein. Da der Datenbestand einer Tabelle während der Strukturanpassung (insbesondere bei Umsetzungen) nicht konsistent ist, können sich Programme beim Zugriff auf diesen Datenbestand fehlerhaft verhalten.

Siehe auch:

Probleme bei Umsetzungen

 

 

 

 

 

Ende des Inhaltsbereichs