Вот - на коленке нашёл :
s = "";
for select """" || rdb$field_name || """"
from rdb$relation_fields
where rdb$relation_name = :rel_name
and :def_flds like "," || rdb$field_name || ","
into :fld
do if (s = "")
then s = fld
else s = s || ", " || fld;
s_from = s;
s_to = s;
// добавляем остальные поля с транформациями, этот список постоянен,
// или передаётся "сверху"
s = "INSERT INTO " || :rel_name || " (" || :s_to || ") " || :s_from ||
" FROM " || :rel_name || " WHERE " || s_where;
execute statement :s;
Кстати пятничные мысли :
Вот если б в триггере можно было б получить rdb$relation_name и назначать
один триггер нескольким табличкам, то таким образом можно было-бы
формировать лог изменений в виде SQL скрипта для того-же isql. Вот и
элементарная репликация, однонаправленная, как нефиг делать на коленке. Ну и
другие виды реплигации - дело техники...
With b/r. Gleb.