Tom: Automatisches Aufnummerieren in einer Abfrage

Beitrag lesen

Guten Tag Forumsgemeinde

Ich stehe vor folgendem Problem:
Wie kann in SQL ich mittels eines Update-Statements der Wert eines Feldes in der Abrage aufnummerieren, beginnend mit einem vorgegebenen Startwert.

Die (beispielhafte) Tabelle sieht so aus:

BestID  ArtNr   RechNr       LieferDatum
1002    45860   70058        27.02.00
1003    31120   70059        29.02.00
1004    68167                01.03.00
...
1026    58996                23.03.00
1027    72156                26.03.00
1028    48902                28.03.00
1029    64537                02.04.00
...

Für Betsllungen die im Monat Februar geliefert wurden, sind schon Rechnungsnummern generiert.
Jetzt sollen die Bestellungen für den Monat März abgerechnet werden, d.h. eine (eindeutige) Rechnungsnummer generiert werden.

Die Abfrage für die zu verändernden Datensätze sieht so aus:
SELECT BestID, ArtNr, RechNr, LieferDatum
FROM tblBestellungen
WHERE RechNr = null AND LieferDatum < 01.04.00      <- Vorausgesetzt, dass ich hier mit richtigen Datumsfeldern arbeite.

Der Startwert für die Aufnummerierung der Rechnungsnummer gewinne ich mit folgendem Statement:
SELECT Max(RechNr) + 1
FROM tblBestellungen

Nun, wie kriege ich die Rechnungsnummer nun mit einem Update-Statement aufnummeriert?

So klappt es auf jeden Fall nicht:
UPDATE tblBestellungen
SET RechNr = ( SELECT Max(RechNr)+1 FROM tblBestellungen )
WHERE RechNr = null AND LieferDatum < 4/1/00

Hat jemand einen Tip oder Ratschlag?

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.

Danke schon im voraus.

Grüsse
Tom