Запись в таблицу аудита или изменений того, что изменилось, - один из упомянутых вами подходов.
Если вы используете SQLServer, есть также столбец отметки времени.Это не столбец времени данных - имя ошибочно.Вместо этого это увеличивающийся номер, и при касании строки он получает следующий номер.Если вы получите максимальную временную метку, а затем, запросите все строки с временной отметкой, превышающей эту длину, вы получите строки, которые были изменены / добавлены.
http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx
Тип данных отметки времени SQL Server не имеет ничего общего со временем или датой.Временные метки SQL Server - это двоичные числа, указывающие относительную последовательность изменений данных в базе данных.Тип данных временной метки изначально был реализован для поддержки алгоритмов восстановления SQL Server.
Один из подходов, который я бы особенно опасался, - это использование даты и времени в качестве водяного знака.Он сдвигается, может меняться и не подходит для использования в алгоритме - особенно для обнаружения того, что изменилось.Я видел, как системы рушатся, пытаясь использовать datetime как надежный подход к созданию водяных знаков.