我需要獲取連續更改的所有值,並在其他「審計」表上修改後的值。我能否實現這一點,而不必爲行中的每個元素寫入條件?我知道,從http://www.firebirdfaq.org/faq133/,讓你爲驗證所有條件SQL:Firebird - 獲取觸發器內的所有修改字段
select 'if (new.' || rdb$field_name || ' is null and old.' ||
rdb$field_name || ' is not null or new.' || rdb$field_name ||
'is not null and old.' || rdb$field_name || ' is null or new.' ||
rdb$field_name || ' <> old.' || rdb$field_name || ') then'
from rdb$relation_fields
where rdb$relation_name = 'EMPLOYEE';
,但這應該在觸發寫入。所以,如果我更改表格,那麼我需要修改觸發器。
由於FireBird不允許動態增加varchar變量的大小,因此在將它插入文本blob之前,我正在考慮將所有值轉換並連接到大型varchar變量。
有沒有可能做到這一點,而不使用GTTs?
爲了創造力+1,但它有效嗎? [這個郵件列表線程](http://groups.yahoo.com/neo/groups/firebird-support/conversations/topics/100294)表明①當某個表被刪除時,系統表觸發器消失,②這種方法在最不習慣的是失敗。 – pilcrow