Ein Updatetrigger hilft dir da wohl auch nicht, da dieser ja nur den aktuellen Satz betrachtet.
Hier kannst du nur selber eine Prozedur (egal ob embedded SQL oder SQL-Procedure) schreiben, die per Select die Daten nebst Schlüssel sammelt und dann den Update je Schlüssel mit der neuen Nummer durchführt.
Warum denn die Nummer immer neu vergeben?
Bei ggf. Millionen von Sätzen ist das ein zeitraubender Vorgang.
Sind Lücken denn relevant bzw. dürfen nicht vorkommen?
Du kannst dir doch eine Mandantentabelle (die gibts meist ja schon) mit einem Zähler erstellen, der bei jedem Insert (before-Insert-Trigger) die neue Nummer beschafft.