В зависимости от ваших требований и версии SQL Server это звучит как задание для Сбор данных изменений (CDC), доступный в SQL Server 2008 и более поздних версиях, или Временные таблицы , доступно в SQL Server 2016 и выше.
CDC использует журнал транзакций для записи вставок, обновлений и удалений в созданной системой таблице журнала изменений, в области системных таблиц вашей базы данных, и сохраняет данные в течение настраиваемого периода времени. По умолчанию это три дня, но вы можете установить такой же длительный или короткий период, который соответствует вашим потребностям. Таблица содержит все вставки, все удаления и снимок до и после обновления.
С временной таблицей в основной области таблиц вашей базы данных создается таблица истории. Основная временная таблица содержит текущее состояние ваших данных, а таблица истории содержит все изменения. Временные таблицы дают вам возможность написать запрос, который будет возвращать данные в том виде, в каком они существовали в данный момент времени. Тем не менее, он хранит данные в течение определенного времени из коробки, поэтому в приложениях с большим потоком может быть немного много места для хранения.
Я бы посмотрел на оба вопроса, прежде чем идти по пути решения проблемы.