Forums Neueste Beiträge
 

Select Max bei parallelen Abarbeitungen

15/10/2008 - 13:33 von Stephan | Report spam
Hallo zusammen,

ich hab mal ein interessantes Problem.
Ich habe eine Tabelle Rechung:
Spalten:
Id (int als Identityfeld)
ReNr (fàngt in jedem Jahr wieder bei 1 an)
Jahr (fortlaufendes Jahr)

So jetzt wird es spannend:
Mit select Max(ReNr) from Rechnung where Jahr 08
lass ich mir die größte Rechnungnummer zurückgeben und erzeuge dann
mit diesem Wert+1 eine neue Rechnungsnummer.

Was mache ich aber wenn eine Application Parallelzugriffe auf die Datenbank
startet und mehrere Threads den gleichen Max-Wert zurück bekommen.
Wenn diese dann probieren den Insert mit der neuen Rechnung zu machen
knallt es weil sie ja alle mit Max+1 schreiben wollen.

Hat jemand eine Idee wie ich mir von der Datenbank eine fortlaufende Nummer
zurückgeben lassen kann, die aber auf das Jahr bezogen ist und die auch im
Parallelbetrieb funktioniert.
Oder irgendeine andere gute Idee ?

Grüße
Stephan
 

Lesen sie die antworten

#1 Christoph Ingenhaag
15/10/2008 - 14:51 | Warnen spam
Hi Stephan,

lies dir das mal komplett durch
http://www.microsoft.com/communitie...c=&p=1

Vg
Christoph

Ähnliche fragen