Cамый простой вариант это использовать views. Если добавить новое поле, то достаточно их обновить. Я очень много полей добавил и все они журналируются и данные вытягиваю не из самой таблицы, а из связок.
v1049_historylineservicecall
SELECT T1.HSC_OID AS object_id, T1.HSC_SUBJECT AS subject, CAST(3037593606 AS NUMERIC) AS itemtype, CAST(NULL AS CHAR) AS attribute_name,
T1.HSC_VALUEATR_OID AS attribute_object_id, T3.HIS_INFORMATION AS information, T1.HSC_NEWVALUE AS newvalue,
T4.SER_DESCRIPTION AS servicecall_description, T4.SER_ID AS servicecall_id, T1.HSC_SER_OID AS servicecall_object_id, T1.HSC_SPENTTIME AS spenttime,
T1.HSC_SYSTEM AS system, T5.TEM_NAME AS template_name, T1.HSC_TEM_OID AS template_object_id, T1.HSC_VALUEFROM AS valuefrom,
T1.HSC_VALUETO AS valueto, T1.HSC_CREATED + CAST(3.0 AS DECIMAL) / 24 AS created, T6.ACC_SHOWNAME AS createdby_displayname,
T1.REG_CREATEDBY_OID AS createdby_object_id, T1.HSC_MODIFIED + CAST(3.0 AS DECIMAL) / 24 AS modified, T7.ACC_SHOWNAME AS modifiedby_displayname,
T1.REG_MODIFIEDBY_OID AS modifiedby_object_id, T1.HSC_CREATED
FROM dbo.ITSM_HISTORYLINES_SERVICECALL AS T1 LEFT OUTER JOIN
dbo.REP_ACCOUNTS AS T7 ON T7.ACC_OID = T1.REG_MODIFIEDBY_OID LEFT OUTER JOIN
dbo.REP_TEMPLATES AS T5 ON T5.TEM_OID = T1.HSC_TEM_OID LEFT OUTER JOIN
dbo.ITSM_HIST_INFO_SERVICECALL AS T3 ON T3.HIS_HSC_OID = T1.HSC_OID LEFT OUTER JOIN
dbo.IFC_ATTRIBUTES AS T2 ON T2.ATR_OID = T1.HSC_VALUEATR_OID INNER JOIN
dbo.ITSM_SERVICECALLS AS T4 ON T4.SER_OID = T1.HSC_SER_OID INNER JOIN
dbo.REP_ACCOUNTS AS T6 ON T6.ACC_OID = T1.REG_CREATEDBY_OID