Den nächsten Wert eines Triggers kannst Du mit dem folgenden
SQL-Befehl Abfragen
SELECT NEXT VALUE FOR <generator_name> FROM RDB$DATABASE;
Im Feld Gen_ID findest Du dann den nächsten Wert vom Trigger.
Edit2 : Aber aufpassen, wenn der SELECT-Befehl ausgeführt wird, dann wird der Trigger angestossen und um eins erhöht. Ich habe dann nochmal den Befehl
ALTER SEQUENCE <generator_name> RESTART WITH <ergebnis aus select - 1>;
ausgeführt, damit der Trigger wieder auf dem alten Wert steht.
Eine Tabelle incl. AutoInc_Feld erstelle ich so :
SQL-Code:
CREATE TABLE Adresse (
AutoInd INTEGER,
Feld1 INTEGER,
Feld2 INTEGER,
Feld3 CHAR(50),
Feld4 CHAR(50)
);
CREATE GENERATOR GEN_Adresse_ID;
SET TERM ^ ;
create trigger Adresse_bi for Adresse
active before insert position 0
as
begin
if (new.AutoInd is null) then
new.AutoInd = gen_id(gen_Adresse_id,1);
end
^
SET TERM ; ^
SET TERM ^ ;
create procedure sp_gen_Adresse_id
returns (AutoInd integer)
as
begin
AutoInd = gen_id(gen_Adresse_id, 1);
suspend;
end
^
SET TERM ; ^
Edit1: Fehler in den BBCodes bereinigt.