Paul,

What do I need to do to the trigger so that only one row is inserted into the 
documents_log table when two or more columns are changed when a single row is 
updated in the documents table?

Documents Table:  dm_column_1, dm_column_2, dm_column_3
Documents_Log Table:  dl_column_1, dl_column_2, dl_column_3

SET TERM ^ ;
CREATE TRIGGER documents_after_u FOR documents ACTIVE
AFTER UPDATE POSITION 3
AS
 BEGIN
   INSERT INTO documents_log
     (dl_column_1, dl_column_2, dl_column_3)
   VALUES
     (new.dm_column_1, new.dm_column_2, new.dm_column_3);
 END^
SET TERM ; ^


<SL> This logic will create a single record for an update, which is your goal.

<SL> If you are seeing several log entries, the problem is with how the columns 
are being updated - it is likely that each column is being updated by a SQL 
statement, when the column value changes in the client.  This would result in 
the trigger firing for each separate update.

Reply via email to