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;

Rispondi quotando