В таблицу где лежит информация о сущности добавьте поле DBEG as datetime.
При создании сущности в это поле заносите текущую дату/время. При изменении сущности - не меняете запись сущности, а добавляете новую запись с текущим значением даты/времени в DBEG. Отбор текущей сущности будет происходить так:
select top 1 * from table where ID= order by DBEG desc
Таким образом сохраняется вся история, ну и не плохо бы иметь интерфейс для просмотра истории.
Это общий подход. Если нужно реализовать хранение изменений для определенных аттрибутов сущности, то подобные аттрибуты нужно выделить в отдельную таблицу и в этой таблице применить аналогичный подход, при этом сама сущность будет в единственном экземпляре, а вот ее некоторые аттрибуты будут с историей.
Аттрибуты можно выделять в таблицу по типам данных, допустим отдельная таблица для целых, строк, вещественных, дат и т.п. Либо одна общая таблица с соответствующими полями для каждого типа данных.