Saludos, en mi opinión la utilización de generadores es lo mejor para campos "autoincremento" por lo tanto la solución que aporta enecumene es la correcta(repito, en mi opinión), quizas solo para no ajustar "manualmente" el generador a cero con un trigger así se podría hacer:
Código SQL
[-]
CREATE OR ALTER TRIGGER PRUEBA_AD0 FOR PRUEBA
ACTIVE AFTER DELETE POSITION 0
AS
declare variable FILAS INTEGER;
begin
select count(*) from PRUEBA into :FILAS;
if (filas = 0) then
execute statement 'SET GENERATOR G_PRUEBA to 0';
end
si después de la eliminacion de registros la tabla esta vacía, el generador se queda con valor cero.
El problema para este metodo sería que se eliminen los registros y posteriormente se haga un rollback ya que aún así el generador estará con valor cero y la siguiente insercion de registros duplicará el campo eval_clave.
Saludos