Solange man die neuen SQL-Funktionen auch hat kann man sowas verwenden.
Bei sog. Altsystem/-lasten geht sowas halt nicht.

Ich habe mir für so einen Fall eine einfache Key-Datei generiert, die als Schlüssel alle Werte von 1-N enthält.

Select Key from Keyfile
where not exists (select * from Myfile where Key = MyFile.Key)
fetch first 1 rows only

erhalte ich dann die erste freie Nummer.
Über Performance darf man dann nicht reden.

Aber es ist schon ungewöhnlich eine Nummernverwaltung auf diesem Wege durchzuführen. Normalerweise verwendet man ja Tabellen für so was.