Rheinwerk < openbook > SAP-Wissen aus erster Hand
SAP-Wissen aus erster Hand.
 
Inhaltsverzeichnis
Vorwort zur vierten Auflage
1 ABAP und die ersten Schritte im SAP-System
2 ABAP Dictionary
3 Programmieren im ABAP Editor
4 Felder und Berechnungen
5 Modifikation von Zeichenketten
6 Debugging von Programmen
7 Modifikation von transparenten Datenbanktabellen
8 Rechnen mit Datum und Zeit, Mengen und Währungen
9 Mit Daten in einer Datenbanktabelle arbeiten
10 Programmablaufsteuerung und logische Ausdrücke
11 Selektionsbildschirme
12 Interne Tabellen
13 Modularisierung von Programmen
14 Weiterführende Themen
A Icons auf einen Blick
B Abkürzungsverzeichnis
C Die Autoren
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 23 KB

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in ABAP von Karl-Heinz Kühnhauser, Thorsten Franz
Buch: Einstieg in ABAP

Einstieg in ABAP
Pfeil 9 Mit Daten in einer Datenbanktabelle arbeiten
Pfeil 9.1 Berechtigungskonzept
Pfeil 9.2 Sperrkonzept
Pfeil 9.3 Open-SQL-Anweisungen
Pfeil 9.3.1 Neuen Datensatz anlegen
Pfeil 9.3.2 Bestehenden Datensatz ändern
Pfeil 9.3.3 Datensatz modifizieren
Pfeil 9.3.4 Datensatz löschen
Pfeil 9.4 Komfortable Alternative: Persistente Klassen
Pfeil 9.5 Codebeispiel zu INSERT
Pfeil 9.6 Codebeispiel zu UPDATE
Pfeil 9.7 Codebeispiel zu MODIFY
Pfeil 9.8 Codebeispiel zu DELETE
 
Zum Seitenanfang

9.3    Open-SQL-Anweisungen Zur vorigen ÜberschriftZur nächsten Überschrift

Wie erwähnt, modifizieren Sie von Tabelleninhalten mithilfe von Open-SQL-Anweisungen. Open-SQL-Anweisungen sind spezielle ABAP-Anweisungen, von denen Sie als Beispiel die SELECT-Anweisung bereits kennen. Durch die Kapselung haben die Open-SQL-Anweisungen eine einheitliche ABAP-Syntax für alle zertifizierten Datenbanksysteme. Programme mit diesen Anweisungen laufen auch dann ohne Anpassungen, wenn das darunterliegende Datenbanksystem durch ein anderes ausgetauscht werden sollte. Allerdings ist hierfür Voraussetzung, dass alle Datenbankobjekte über das ABAP Dictionary angelegt und verwaltet wurden und werden.

Eine Datenbanktabelle für Anwendungsdaten hat als erstes Schlüsselfeld immer die Mandantennummer; nur Systemtabellen sind mandantenunabhängig. Grundsätzlich haben Open-SQL-Anweisungen eine automatische Mandantenbehandlung und gelten damit nur für den aktuellen Mandanten. Mit der automatischen Mandantenbehandlung ist es nicht möglich, aus einem Mandanten heraus die Daten eines anderen Mandanten zu selektieren oder zu modifizieren.

Für den Einstieg in ABAP sind außer der SELECT-Anweisung zum Lesen von Daten folgende Anweisungen zur Modifikation von Tabelleninhalten wichtig:

  • Möchten Sie neue Zeilen, d. h. neue Datensätze, in eine Tabelle einfügen, verwenden Sie das INSERT-Kommando.

  • Soll ein bestehender Datensatz verändert werden, dient hierzu der UPDATE-Befehl.

  • Mit der MODIFY-Anweisung arbeiten Sie, wenn Sie nicht sicher sind, ob es diesen Satz in der Tabelle bereits gibt oder nicht. Für den Fall, dass er bereits existiert, wird er geändert; die Anweisung wirkt dann wie das UPDATE-Kommando. Für den Fall, dass der Datensatz noch nicht existiert, wirkt die MODIFY-Anweisung wie ein INSERT-Kommando.

  • Sollen Datensätze aus der Datenbanktabelle gelöscht werden, verwenden Sie das DELETE-Kommando. Aber Vorsicht: Auch ganze Tabelleninhalte lassen sich mit der DELETE-Anweisung löschen und sind dann unwiederbringlich verloren.

All diese genannten Anweisungen liefern einen Returncode und füllen damit das Systemfeld SY-SUBRC. Unmittelbar nach der jeweiligen Anweisung kann das Feld SY-SUBRC im Debugger geprüft oder im Quellcode abgefragt werden. Je nach Inhalt des Tabellenfeldes wird die Aktion bewertet und entschieden, wie der weitere Ablauf sein soll. Für den Fall, dass die Anweisung formal vom System ohne Probleme ausgeführt werden konnte, erhält das Feld SY-SUBRC den Wert 0.

Der Returncode einer Anweisung mit dem Wert 0 ist, nebenbei bemerkt, auch in anderen Programmiersprachen meistens der Wert für den »Okay-Fall«. Kann das System die Anweisung nicht ausführen, meldet es einen anderen Returncode zurück, wobei es vom speziellen Kommando abhängig ist, welcher Wert für den Returncode geliefert wird. Außerdem müssen Sie in der Referenz oder der Hilfe zum Kommando nachlesen, welcher Wert welchen Fehler beschreibt. Je nach Art des Fehlers ist in der Programmlogik der weitere Ablauf des Programms zu steuern. Beispiele hierzu finden Sie in Kapitel 10, »Programmablaufsteuerung und logische Ausdrücke«. Für weitere Informationen sei auf die ABAP-Referenz (SAP PRESS, 3. Auflage 2010) verwiesen.

 
Zum Seitenanfang

9.3.1    Neuen Datensatz anlegen Zur vorigen ÜberschriftZur nächsten Überschrift

Mit der INSERT-Anweisung können Sie einen oder mehrere neue Datensätze in eine Datenbanktabelle einfügen. Der Einfachheit halber beschränken wir uns bei dieser und den anderen Open-SQL-Anweisungen auf die Arbeit mit einzelnen Datensätzen.

Um mit den Tabelleninhalten zu arbeiten, deklarieren Sie zunächst eine Workarea, deren Struktur der der Tabelle entspricht. Dann ermitteln Sie alle Feldwerte des neuen Datensatzes und füllen anschließend die Workarea mit dem Datensatz, der als neue Zeile in die Datenbanktabelle geschrieben werden soll. Danach kopieren Sie den Inhalt der Workarea als neue Zeile in die Datenbanktabelle.

Der Aufbau der Struktur für die Workarea und der Struktur des Tabellenbereichs ist sinnvollerweise identisch, was Sie am einfachsten dadurch erreichen, dass Sie sich bei der Deklaration der Workarea auf die Tabelle als zugrundeliegenden Datentyp beziehen. Workareas werden mit der DATA-Anweisung deklariert.

Bei der Namensvergabe für Workareas sind Sie lediglich wieder an die allgemeinen Namenskonventionen gebunden. Für die bessere Lesbarkeit des Quellcodes wird aber empfohlen, den Namen der Workarea mit WA_ beginnen zu lassen. Möchten Sie die Workarea WA_ZTEILNEHMER02 anlegen, und soll diese strukturgleich mit der Tabelle ZTEILNEHMER02 sein, lautet die DATA-Anweisung:

DATA wa_zteilnehmer02 TYPE zteilnehmer02.
[ ! ]  LIKE und TYPE

Es gibt einen subtilen Unterschied zwischen der Deklaration mit TYPE und mit LIKE: Bei der Verwendung von LIKE bezieht sich die Deklaration auf ein konkretes, in Ihrem Programm existierendes Datenobjekt; bei Verwendung von TYPE bezieht sie sich auf einen Datentyp, der entweder in Ihrem Programm oder auch im ABAP Dictionary definiert sein kann.

ZTEILNEHMER02 ist hier in einer Doppelrolle. Als Datenbanktabelle im ABAP Dictionary ist ZTEILNEHMER02 ein globaler Datentyp und sollte mit TYPE referenziert werden; gäbe es im Programm eine Deklaration als Tabellenarbeitsbereich mit der obsoleten TABLES-Anweisung, so würde ein gleichnamiges Datenobjekt im Programm existieren, das Sie mit LIKE referenzieren könnten. Davon – und generell von solchen impliziten Doppelrollen – möchten wir aber aus Gründen der Verständlichkeit abraten.

Nach der Deklaration der Workarea ermitteln Sie die Werte für die Felder des neuen Satzes und legen die Ergebnisse in der Workarea ab. Steht der neue Satz vollständig aufgebaut in der Workarea, wird er von dort aus in die Datenbanktabelle übertragen; in unserem Beispiel wird die Workarea WA_ZTEILNEHMER02 gefüllt. Der neue Datensatz in der Datenbanktabelle ZTEILNEHMER02 wird mit folgendem Kommando eingefügt:

INSERT zteilnehmer02 FROM wa_zteilnehmer02.

In dieser Schreibweise könnte der Name der Datenbanktabelle auch dynamisch angegeben werden: Dann steht in der Anweisung anstelle des Tabellennamens ein Feldname, und der Inhalt des Feldes ist der Name der Datenbanktabelle. Angenommen, das Feld ZIELTABELLE wäre ein Feld vom Typ c und hätte als Inhalt ZTEILNEHMER02, dann könnte die Anweisung auch lauten:

INSERT (zieltabelle) FROM wa_zteilnehmer02.

Die Variable, in der die zu füllende Tabelle steht, in unserem Beispiel die Variable ZIELTABELLE, muss aus semantischen Gründen ohne Leerzeichen in Klammern stehen.

Hat die Übertragung funktioniert, wird die Workarea bei Bedarf mit der CLEAR-Anweisung initialisiert und für den nächsten Datensatz neu aufgebaut. Hierdurch erreichen Sie eine vollständige Trennung zwischen dem Arbeitsbereich für den zuletzt gelesenen Tabellensatz und dem für den neuen Tabellensatz.

[+]  Höhere Flexibilität

Das Arbeiten mit Workareas hat sich in der Praxis auch aus anderen Gründen durchgesetzt: Workareas ermöglichen beispielsweise eine wesentlich höhere Flexibilität, wie Sie in Kapitel 12, »Interne Tabellen«, sehen, sodass Sie mit fortschreitendem Wissensstand – auch und gerade in diesem Buch – mehr und mehr mit Workareas arbeiten werden.

In älteren Programmen finden Sie noch die Deklaration ohne Angabe einer Workarea mit der TABLES-Anweisung sowie das anschließende Schreiben einer neuen Zeile in die Tabelle:

TABLES zteilnehmer02.

Hiermit wird in Ihrem Programm nicht nur die Verwendung der Tabelle ZTEILNEHMER02 deklariert, sondern auch ein Datenobjekt angelegt, das die Eigenschaften einer globalen Variablen besitzt und die gleiche Struktur aufweist wie die Datenbanktabelle – so als hätten Sie deklariert:

DATA zteilnehmer02 TYPE zteilnehmer02.
[»]  TABLES-Anweisung

Die TABLES-Anweisung gilt als obsolet und wird nur noch aus Kompatibilitätsgründen und nur außerhalb von ABAP-Klassen unterstützt: Es gibt hier keine TABLES-Anweisung mehr und folglich auch keine Tabellenarbeitsbereiche. Diese wurden vor Jahren von ausdrücklich deklarierten Workareas abgelöst. Die veraltete Schreibweise finden Sie noch in kundeneigenen Programmen sowie in einigen Standard-Reports. Deshalb – und weil sie für den Einstieg auch dem Verständnis dient – soll sie hier dennoch erläutert werden.

Ist ein Tabellenarbeitsbereich deklariert, fungiert dieser daher implizit auch als Workarea für die jeweilige Tabelle. Das bedeutet, dass Sie bei der INSERT-Anweisung auf die Angabe der Workarea verzichten können – das System verwendet immer die implizit deklarierte Workarea, die den gleichen Namen besitzt wie die Datenbanktabelle:

INSERT zteilnehmer02.

In der regulären Notation wäre dies gleichbedeutend mit folgender Anweisung:

INSERT zteilnehmer02 FROM zteilnehmer02.

In der Kurzschreibweise ohne die Angabe der Workarea muss nur der Name der Datenbanktabelle direkt angegeben werden. Wie beschrieben, können Sie unmittelbar nach dem Kommando den Returncode abfragen, der im Systemfeld SY-SUBRC eingetragen wurde. Falls er 0 ist, hat das System die Anweisung formal problemlos ausführen können. Kann das System keine neue Zeile in die Datenbanktabelle einfügen, weil bereits ein Datensatz mit diesem Primärschlüssel vorhanden ist, wird SY-SUBRC auf 4 gesetzt.

Bei der Verwendung des Tabellenarbeitsbereichs als Puffer für einen neuen Datensatz müssen Sie leider einige Risiken in Kauf nehmen. Wenn beispielsweise beim neuen Datensatz weniger Felder gefüllt sind als beim alten, stellt sich die Frage, wie Sie sicherstellen, dass wirklich alle Felder der Satzstruktur den richtigen, neuen Inhalt bekommen und keine unerwünschten Mischformen entstehen. Ein anderes Beispiel: Für die Ermittlung von Ergebnissen oder Zwischenergebnissen benötigen Sie gleichzeitig wechselweise Werte aus dem alten und dem neuen Satz. Wie gewährleisten Sie, dass Sie so lang wie nötig auf die alte Satzstruktur noch zugreifen können und gleichzeitig bereits die neue Struktur aufbauen?

Die Lösung für das Problem aus dem ersten Beispiel ist relativ einfach: Bevor Sie beginnen, die neue Satzstruktur zu füllen, löschen Sie den Inhalt des Tabellenarbeitsbereichs mit der CLEAR-Anweisung. Möchten Sie den Tabellenarbeitsbereich für die Tabelle ZTEILNEHMER02 löschen, lautet die Anweisung:

CLEAR zteilnehmer02.

Die Anweisung CLEAR setzt alle Felder des Tabellenbereichs auf ihre typbezogenen Initialwerte zurück. Beispielsweise erhalten Felder mit dem Datentyp c, d. h. Character-Felder, als Initialwert ein Leerzeichen (' ') und Felder mit dem Datentyp d, hierbei handelt es sich um Datumsfelder, den Initialwert '00000000'.

 
Zum Seitenanfang

9.3.2    Bestehenden Datensatz ändern Zur vorigen ÜberschriftZur nächsten Überschrift

Auch mit einem UPDATE-Kommando können mehrere Datensätze gleichzeitig geändert werden; wir beschränken uns allerdings auf die Änderung eines Satzes. Arbeiten Sie mit einer Workarea, modifizieren Sie die Workarea und aktualisieren die entsprechende Zeile der Datenbank mit dem folgenden Ausdruck:

UPDATE zteilnehmer02 FROM wa_zteilnehmer02.
[+]  Namen dynamisch angeben

Der Name der Datenbanktabelle könnte ebenfalls wieder dynamisch angegeben werden. Die Analogien gelten auch für die automatische Mandantenbehandlung und den Einsatz des CLEAR-Kommandos.

In der traditionellen Schreibweise bauen Sie den Tabellenarbeitsbereich auf und ändern die jeweilige Zeile in der Datenbanktabelle. In unserem Beispiel modifizieren Sie den Tabellenarbeitsbereich für die Tabelle ZTEILNEHMER02 und aktualisieren die jeweilige Zeile der Datenbanktabelle:

UPDATE zteilnehmer02.

Existiert ein Datensatz in der Datenbanktabelle mit demselben Primärschlüssel, wird dieser Satz aktualisiert, und der zurückgelieferte Returncode hat den Wert 0. Findet das System keinen Satz mit diesem Primärschlüssel in der Datenbanktabelle, bleibt die Tabelle unverändert, und der Returncode erhält den Wert 4.

 
Zum Seitenanfang

9.3.3    Datensatz modifizieren Zur vorigen ÜberschriftZur nächsten Überschrift

Das MODIFY-Kommando dient sowohl zur Anlage eines neuen Satzes als auch zur Modifikation eines bestehenden. Das MODIFY-Kommando hat damit zwei verschiedene Wirkungsweisen und ist von der Performance her schlechter als die jeweiligen Spezialisten INSERT und UPDATE, weshalb Sie es nur dann verwenden sollten, wenn die Programmlogik es erfordert, beide Möglichkeiten offenzuhalten. Grundsätzlich sollten Sie den Einsatz der speziellen Anweisungen INSERT und UPDATE dem MODIFY-Kommando vorziehen.

Auch bei der MODIFY-Anweisung verwenden Sie normalerweise eine Workarea, damit Ihr Code ebenfalls mit ABAP Objects kompatibel ist und jederzeit im Kontext von ABAP-Klassen laufen kann:

MODIFY zteilnehmer02 FROM wa_zteilnehmer02.

Bei dieser Schreibweise könnten Sie den Tabellennamen wieder dynamisch angeben; auch alle übrigen Regeln und Anmerkungen gelten analog zu den Hinweisen bei INSERT und UPDATE.

Natürlich existiert auch die MODIFY-Anweisung in der traditionellen Schreibweise, d. h. in Verbindung mit einem mit der TABLES-Anweisung deklarierten Tabellenarbeitsbereich. Die Anweisung lautet dann:

MODIFY zteilnehmer02.

Der Primärschlüssel des Datensatzes ergibt sich aus den Feldinhalten des Tabellenarbeitsbereichs. Existiert in der Datenbanktabelle noch kein Datensatz mit diesem Primärschlüssel, wird eine neue Zeile angelegt. Ist ein Datensatz mit diesem Primärschlüssel bereits vorhanden, wird die entsprechende Zeile mit den Inhalten des Tabellenarbeitsbereichs aktualisiert. In beiden Fällen ist der Wert für den Returncode 0. Nur wenn die Zeile überhaupt nicht bearbeitet werden konnte, erhält der Returncode den Wert 4.

 
Zum Seitenanfang

9.3.4    Datensatz löschen Zur vorigen ÜberschriftZur nächsten Überschrift

Wie in der Einleitung dieses Kapitels bereits erwähnt, kann mit dem DELETE-Kommando versehentlich viel Unheil angerichtet werden. Dies sollte allerdings nicht dazu führen, das Löschen zu vermeiden, stattdessen müssen Sie beim Löschen eines oder mehrerer Datensätze besonders risikobewusst planen, entwickeln und testen – dies betrifft auch nachträgliche Programmänderungen.

Beginnen wir wieder mit dem Normalfall, dem Löschen eines Datensatzes der Datenbanktabelle unter Verwendung einer Workarea. Es müssen nicht alle Felder der Workarea mit den richtigen Inhalten gefüllt sein; die Angabe des zutreffenden Primärschlüssels genügt. In unserem Beispiel der Tabelle ZTEILNEHMER02 besteht der Primärschlüssel aus dem Mandanten und der Teilnehmernummer. Durch die automatische Mandantenbehandlung müssen Sie sich nicht um den richtigen Mandanten kümmern, sondern es genügt die Angabe der Teilnehmernummer, um den Primärschlüssel festzulegen. Sie füllen in der Workarea das Feld für die Teilnehmernummer mit der zu löschenden Teilnehmernummer, dann löschen Sie die entsprechende Zeile in der Datenbanktabelle:

DELETE zteilnehmer02 FROM wa_zteilnehmer02.

Bei dieser Schreibweise können Sie den Namen der Datenbanktabelle wieder dynamisch angeben; die übrigen Regeln und Anmerkungen gelten analog zu den Hinweisen bei INSERT, UPDATE und MODIFY.

Das Löschen eines Datensatzes in der veralteten Schreibweise mit Nutzung eines mit TABLES deklarierten Tabellenarbeitsbereichs geschieht analog zu den vorherigen Beispielen:

DELETE zteilnehmer02.

Bei dieser Schreibweise wird der Tabellenname wieder statisch angegeben. Der Primärschlüssel des zu löschenden Datensatzes ergibt sich aus den Feldinhalten des Tabellenarbeitsbereichs. Findet das System in der Datenbanktabelle eine Zeile mit diesem Primärschlüssel, wird sie gelöscht und der Returncode auf 0 gesetzt. Falls das System keine solche Zeile findet, erhält der Returncode den Wert 4.

[ ! ]  Äußerste Vorsicht

Wie erwähnt, ist die DELETE-Anweisung mit äußerster Vorsicht zu genießen. Bei der bisherigen Arbeitsweise haben Sie die Datensätze der Tabelle ZTEILNEHMER02 immer über den Primärschlüssel angesprochen. Am Beispiel dieser Anweisung sollen Sie üben, die »richtigen« Zeilen nicht über den Primärschlüssel, sondern über eine Bedingung anzusprechen.

Denken Sie auch daran, dass die zahlreichen Varianten der Befehle INSERT, MODIFY und DELETE eine Fehlerquelle von beträchtlichem Ausmaß sind. Mit minimal abweichenden Syntaxvarianten können Sie interne Tabellen mit und ohne Kopfzeile und Datenbanktabellen mit Tabellenarbeitsbereich oder Workarea manipulieren. Die obsoleten Konstrukte wie Tabellenarbeitsbereiche und Kopfzeilen interner Tabellen werden nach wie vor von der ABAP-Sprache unterstützt und führen zu einem regelrechten Zoo von ähnlichen, aber unterschiedlich wirkenden Varianten der genannten Sprachbefehle. Hinter dem Zusatz FROM steht mal der Name der Datenbanktabelle, mal der einer Workarea und mitunter auch mal der einer internen Tabelle. Deshalb: Bevor Sie unbeabsichtigt eine Datenbanktabelle löschen, obwohl Sie nur eine interne Tabelle bearbeiten wollten, schauen Sie lieber noch einmal in die Dokumentation, und lassen Sie grundsätzlich besondere Vorsicht bei DELETE walten.

[»]  Alte und neue Arbeitsweise im Überblick

Damit Sie in diesem Zoo den Überblick behalten, grenzen wir die Arbeitsweisen hier noch einmal voneinander ab:

  • Eine Datenbanktabelle existiert in der Datenbank und ist mit ihrer Struktur und ihren Inhalten global im SAP-System sichtbar. Wenn Sie in einem ABAP-Programm darauf zugreifen, übertragen Sie die Tabelleninhalte normalerweise Zeile für Zeile in eine Datenstruktur in Ihrem Programm.

  • Früher wurde diese Datenstruktur mit der TABLES-Anweisung angelegt, trug verwirrenderweise den Namen der Datenbanktabelle und wurde Tabellenarbeitsbereich genannt. Heute wird stattdessen explizit eine Datenstruktur anderen Namens mit der DATA-Anweisung angelegt und Workarea genannt.

  • Eine interne Tabelle existiert nicht auf der Datenbank, sondern ist eine mehrzeilige Datenstruktur, die nur in Ihrem Programm im Hauptspeicher existiert. Früher wurden interne Tabellen so deklariert, dass neben der mehrzeiligen Datenstruktur für das Arbeiten mit den Inhalten der internen Tabelle zusätzlich eine einzeilige Datenstruktur existierte, die verwirrenderweise den gleichen Namen wie die interne Tabelle besaß und Kopfzeile genannt wurde. Heute werden interne Tabellen ohne Kopfzeile deklariert. Ähnlich wie bei den Datenbanktabellen wird stattdessen explizit eine Datenstruktur anderen Namens angelegt, die auch Workarea genannt wird.

Wenn Sie, wie in Abschnitt 7.3.1, »Append-Strukturen pflegen«, vorgeschlagen, Ihre Tabelle erweitert haben, sind dort auch Kursbezeichnungen mit dem Kurstitel gespeichert. Angenommen, ein Kurs fällt aus – z. B. der Kurs zur »Netzwerktechnik« –, und Sie müssen alle Teilnehmer dieses Kurses aus der Tabelle löschen, dann kommen Sie durch die Formulierung einer Bedingung schneller zum Ziel. Allerdings muss diese Bedingung sehr sorgfältig programmiert werden, damit nicht versehentlich die falschen Datensätze gelöscht werden.

[ ! ]  Groß- und Kleinschreibung bei der Angabe von Bedingungen

Ein kleiner, aber böser Stolperstein kann an dieser Stelle beispielsweise die Groß- und Kleinschreibung sein, da die Bedingung als Literal angegeben wird und in einem Literal Groß- und Kleinbuchstaben zwei verschiedene Zeichen sind. Sie müssen daher genau wissen, wie der Feldinhalt in der Datenbanktabelle wirklich im Detail aussieht, da das System anderenfalls die Zeilen nicht findet, die Sie meinen, oder es werden möglicherweise die falschen Zeilen gelöscht – beide Fälle sind gleichermaßen ärgerlich.

In unserem Beispiel ist die Schreibweise von »Netzwerktechnik« daher für den Erfolg ausschlaggebend, und Sie sollten genau überlegen, wie das Literal auszusehen hat: Heißt es 'NETZWERKTECHNIK' oder 'Netzwerktechnik'? Entsprechend würde Ihre Anweisung lauten:

DELETE FROM zteilnehmer02
WHERE zzkurstitel = 'Netzwerktechnik'.
[ ! ]  Alles weg!

Vergessen Sie in diesem Beispiel die WHERE-Bedingung und schreiben Sie stattdessen nur folgende Codezeile, sind mit diesem »netten kleinen Kommando« alle Zeilen unserer Beispieltabelle gelöscht:

DELETE FROM zteilnehmer02.

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in ABAP Einstieg in ABAP
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: SAP – Der technische Einstieg
SAP – Der technische Einstieg


Zum Rheinwerk-Shop: ABAP Objects – Das umfassende Handbuch
ABAP Objects – Das umfassende Handbuch


Zum Rheinwerk-Shop: ABAP-Entwicklung für SAP S/4HANA
ABAP-Entwicklung für SAP S/4HANA


Zum Rheinwerk-Shop: Kundeneigene Erweiterungen mit ABAP
Kundeneigene Erweiterungen mit ABAP


Zum Rheinwerk-Shop: Schrödinger programmiert ABAP
Schrödinger programmiert ABAP


Zum Rheinwerk-Shop: Migration nach SAP S/4HANA
Migration nach SAP S/4HANA


Zum Rheinwerk-Shop: Design Thinking mit SAP
Design Thinking mit SAP


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2020
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern