Ciao, questa l'ho trovata su internet (non ricordo dove) e l'ho modificata per le mie necessità. Alla fine ritorna il valore calcolato. Credo che funzioni, perchè se la eseguo da SQL-Front tramite:

select nextval(seq_name) as newid;

funziona tutto come previsto.

codice:
--create nexval stored procedure
CREATE FUNCTION nextval(seq_name varchar(100))
RETURNS bigint(20) NOT DETERMINISTIC
BEGIN
    DECLARE cur_val bigint(20);     
    SELECT
        f_current_value INTO cur_val
    FROM
        t_sequence
	WHERE
		f_sequence_name = seq_name;
         
    IF cur_val IS NOT NULL THEN
		UPDATE
			T_SEQUENCE
		SET 
			f_current_value = IF(
				(f_current_value + f_increment) > f_end_value, IF(f_cycle = true, f_start_value , null), f_current_value + f_increment
			)
		WHERE
			f_sequence_name = seq_name;
	
	END IF;
	
	RETURN cur_val;
END;