SQL-Code:
AS
begin
IF (NEW.vkaufkopf_id IS NULL) THEN
NEW.vkaufkopf_id = GEN_ID(gen_vkaufkopf_id,1);
end
NULL ist nicht gleich 0
So wie der Trigger geschrieben ist, wird er nicht aktiviert, wenn Du als Wert 0 in das Feld schreibst, und dann steht nachher eben 0 drinnen. Die Zuweisung im Trigger erfolgt ja nur, wenn id NULL ist.