Ik heb een tabel met sequence nummers, waarvan ik er regelmatig één lezen
moet, en dan het nummer in de tabel met één verhogen moet, zodat een andere
gebruiker een volgend nummer krijgt.
Deze tabel wordt ook vanuit een ander systeem gebruikt, wat geschreven is in
een heel andere taal.
Ik heb 't probleem dat ik af en toe geen uniek nummer krijg. Dit andere
systeem locked de hele tabel, leest 'm en schrijft het met één verhoogde
nummer terug, waarna de tabel weer vrijgegeven wordt.
Ik zit daar af en toe blijkbaar tussen. Het ziet er naar uit dat deze kode
de tabel niet locked:
BEGIN TRANSACTION
UPDATE SEQ SET SEQ_NUMBER = SEQ_NUMBER + 1 WHERE COMP_CODE = 'ABC'
SELECT SEQ_NUMBER FROM SEQ WHERE COMP_CODE = 'ABC'
COMMIT TRANSACTION
Of dat de select een ander nummer teruggeeft dan ik zojuist ge-update heb.
Is er een betere manier om dit te doen?
Groeten,
Martin