Porque o comando SET GENERATOR … TO …; não é suportado dentro de Stored Procedures, a unica maneira é ler o valor actual na chamanda GEN_ID e usá-lo para ajustar o valor por outro.(mas cuidadoem ambientes multiulitizador porque estas duas chamadas GEN_ID não é garantido que serão executadas numa unica atomica operação!)
CREATE PROCEDURE SetGen (val INTEGER) AS
BEGIN
val = GEN_ID (MyGen, val – GEN_ID (MyGen,0) );
END