Consultor Eletrônico



Kbase P76003: ASSIGN trigger is not fired when the field is not modified
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   6/10/2010
Status: Verified

SYMPTOM(s):

ASSIGN trigger is not fired when the field is not modified

ASSIGN trigger does not fire when ASSIGN statement, assignment statement using "=", SET statement, or UPDATE statement is executed, but the value assigned to the field is the same as the original value.

FACT(s) (Environment):

Progress 9.x
OpenEdge 10.x
All Supported Operating Systems

CAUSE:

This is expected behavior.
In order to keep performance high, Progress does not reassign the value of a database field if that value hasn't actually changed as there's no real reason to do so.

As the assign doesn't take place if the field is unmodified, the assign trigger will not fire either.

FIX:

If the value needs to be checked whenever a record has changed, use a WRITE trigger on the table instead, or avoid using database triggers altogether and place the validation logic in a regular 4GL procedure.