Der Trigger ist so geschrieben, dass er nur selbst einen Wert vergibt, wenn das Feld noch NULL ist. Das ist eine Möglichkeit, Trigger zu schreiben, nicht unüblich.
Ach so geht das ?
Hier wird aber jetzt gesagt, dass in IBExpert der Trigger zuschlägt wie üblich und in Delphi/FireDAC eben nicht. Wie soll das gehen ? Dazu bräuchte ich eine Erklärung. Das kann doch alles nicht sein. Der Trigger ist gnadenlos und schlägt anhand der Bedingungen zu. Man kann also nur den Wert eines Feldes auf nicht NULL (dadurch halt den Trigger aushebeln bei entsprechender Abfrage auf NULL ) setzen oder den Trigger deaktivieren.