Просто обновите нужные поля и затем «отмените» исходное обновление, используя «вставленные» и «удаленные» временные таблицы, предоставленные триггеру.
Например (не проверено):
--Do the stuff you want
UPDATE table SET fields = values WHERE some condition
--Undo the original update (minus anything you WANT changed above)
UPDATE table SET unchangingfield = deleted.unchangingfield WHERE ID = deleted.ID
«Вставленная» таблица будет содержать новые значения, а «удаленная» таблица содержит значения, которые изменяются. Вы можете присоединяться, запрашивать и иным образом обрабатывать их, как если бы они были настоящими таблицами.