Трябва да получа всички стойности, които са се променили в ред и да публикувам модификации в друга таблица за „одит“. Мога ли да постигна това, без да пиша условията за всеки елемент от реда? Познавам SQL от http://www.firebirdfaq.org/faq133/, който ви дава всичко условията за проверка:
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, мислех да прехвърлям и свържа всички стойности към голяма променлива varchar, преди да я вмъкна в текстов блок.
Има ли някаква възможност да се постигне това, без да се използват GTTs?