Wichtig ist, dass dieses Aufnummerierung in einer Transaktion erfolgt, damit bei einem Fehlschlag ein vollständiger Rollback vorgenommen werden kann.
Aus diesem Grund scheitert auch das Abarbeiten der Abfrage in einer Schleife, da dort bei einem Fehler nur die Änderung am letzten Datensatz zurückgenommen werden kann, jedoch nicht die komplette Aufnummerierung der Rechnungsnummern.
Hi Tom,
ich habe auch keine Idee, wie man das einfach nur auf der SQL Ebene lösen könnte, aber zum Glück kann man mit Scripten so ziemlich alles hinbiegen.
Ich hätte da 2 Lösungsansätze zu diesem Problem.
1. Wie wäre es, wenn du z.B. ein Script programmierst, das die Daten nicht in einer Schleife, sondern Zeile für Zeile abarbeitet? Du könntest dann den letzten Update auf dem Bildschirm ausgeben und quasi auf Knopfdruck warten, befor das Script automatisch das nächste Update vornimmt. So kannst du jeden Schritt genau beobachten und falls was schiefgeht drückst du eben nicht den Knopf, sondern machst dein Rollback.
2. Ich würde gar nicht so viel Zeit und Umstand in die Fehlerprofilxe investieren, da es meiner Meinung nach mehr Aufwand ist, als einen Fehler zu korrigieren. Insbesondere deswegen, weil Scripte Roboter sind und stur nach Muster vorgehen, also geht meistens alles schief oder gar nichts schief. Ausnahmen sind sehr selten.
Du kannst dein SQL Query mit einem Script zusammenbasteln und durch eine Schleife jagen und danach mit wenig Mühe einen Report ausgeben, ob alles geklappt hat, oder eben die Zeilen oder IDs ausgeben von Fehlgeschlagenen Queries...oder was sich eben am besten anbietet, das ist von Fall zu Fall verschieden.
Gruß
Cruz