Der Commit ist wahrscheinlich das unwichtigste hier. Wenn das Programm endet, dann macht er von sich aus einen Commit (sofern das Programmende nicht durch einen ABAP Dump oder ähnliches herbeigeführt worden ist).
@L0w-RiDer: An Deinem UPDATE-Befehl gefallen mir gleich mehrere Sachen nicht. Eine davon hat adt angemerkt: Du hast kein WHERE drin. Das heißt, beim ersten LOOP-Durchlauf werden sämtliche Zeilen Deiner Datenbanktabelle mit der ersten Zeile Deiner internen Tabelle überschrieben. Beim nächsten LOOP-Durchlauf werden sie dann aber gleich wieder überschrieben, nämlich von der nächsten Zeile Deines LOOPs. Deine Idee ist vermutlich, dass Du zu jeder Zeile aus Deiner internen Tabelle genau eine zugehörige Datenbankzeile überschreiben willst. Dazu musst Du dem UPDATE-Befehl aber sagen, welche Zeile der Datenbanktabelle er denn anpassen soll. Da Du kein WHERE in Deinem UPDATE-Befehl drin hast, werden bei jedem einzelnen LOOP-Schleifendurchlauf alle Zeilen der Datenbanktabelle überschrieben!
Dass das in der Praxis bei Dir nicht funktioniert hat, liegt an der zweiten Sache: Du überschreibst den Primärschlüssel. Um die Zeilen, die Du ändern willst, überhaupt finden zu können, sind in Deiner Datenbanktabelle bestimmte Spalten als Primärschlüsselspalten definiert. Über diese unterscheidet die Datenbank die Zeilen. Daraus folgt die Tatsache, dass man die Spalten, die zum Primärschlüssel gehören, niemals updaten kann!!! Ich weiß zwar nicht, wie Deine Tabelle ZCD_TAB_SUCHE in der SE11 definiert ist, aber ich bin mir sehr sicher, dass zumindest die Spalte MANDT zum Primärschlüssel gehört. Da Du in Deinem Update versuchst, diese Spalte zu ändern (auch wenn Du nur wieder denselben Wert reinschreiben möchtest), wird Dir der UPDATE schon deshalb mit einem SY-SUBRC ungleich Null aussteigen und gar nichts machen (mal abgesehen davon, dass man die Spalte MANDT gar nicht angeben darf, wenn man nicht zugleich den Zusatz CLIENT SPECIFIED bringt).
Sei mir nicht böse, aber dieser Fall zeigt doch recht deutlich, dass Dein derzeitiges Verständnis relationaler Tabellen und Datenbanken gegen Null geht. Ich kann Dir nur dringend empfehlen, Dir da erst mal die wesentlichen Grundlagen anzulesen. Bis dahin wird es Dir noch nicht mal gelingen, sinnvolle SELECTs zu bauen, geschweige denn UPDATEs. Und wie dieses Beispiel zeigt, kannst Du mit einem einzigen UPDATE-Befehl den Inhalt einer ganzen Datenbanktabelle vernichten. Genau das würde Dein Update nämlich tun, wenn ABAP sich nicht wegen des Änderungszugriffs auf Primärschlüsselspalten weigern würde, ihn überhaupt auszuführen.