Hi,
SQL-Code:
ALTER TRIGGER DS_BI0
INACTIVE BEFORE INSERT POSITION 0
AS
begin
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID (GEN_DS_ID,1);
end
sieht schon gut aus. Ist aber nur die Änderung des Triggers.
Sicher das der auch in die Datenbank geschrieben wurde (Commit oder CommitRetaining)?
Mit was für ner Console arbeitest du (IBOConsole, IBExpert)?
Ich hab jetzt dein Problem so verstanden, das du aus ner alten Tabelle die AutoInc-ID's in
ne
IB-Tabelle übernehmen willst und dann neue übern Trigger und Generator hochzählen lassen willst.
Der Trigger springt ja nur an, falls du beim Insert nichts für ID angibst.
Eigentlich sollte er sobald ein Insert so aussieht:
Insert into table(id,spalte2,spalte3) values (1,Hallo,Welt)
nicht anspringen, da ja nun
new.id not null
ist.
Probier mal ein Backup/Restore.
Arbeitest du eigentlich mit Interbase oder Firebird. Welche Versionen?
Ansonsten kannst du ja den Genratorwert mit
Set Generator GEN_DS_ID to x
auf jede beliebige Zahl setzen.