das ganze muss unter Commit laufen (was es bei mir immer tut), dann bleibt der Satz gesperrt bis zum Ende der Transaktion. Wenn du in der Applikation kein Commit hast, kannst du das auch als Service Programm mit embedded SQL bauen, dem Service Programm eine eigene benamte ACTGRP verpassen und in der Function selber commit sagen.
Das schreiben vor dem lesen ist ein einfacher Weg um einen Deadlock durch die Eskalation von Sperren zu vermeiden.

B*D

Zitat Zitat von Allrounder Beitrag anzeigen
Habe ich schon entdeckt. Das ist genau das, was ich brauche, super.

Eine Frage noch:
Die UDF GET_KEY schreibt erst eine neue, um eins erhöhte ID und liest diese im nächsten select-Statement aus und gibt sie zurück.
Gibt die UDF nicht den falschen Wert zurück, wenn ein zweiter Update (Zweiter UDF-Aufruf) erfolgt, bevor der select durchgeführt ist?