SQL-сервер 2000:Есть ли способ узнать, когда запись была изменена в последний раз?
-
08-06-2019 - |
Вопрос
В таблице нет поля последнего обновления, и мне нужно знать, когда были обновлены существующие данные.Поэтому добавление последнего обновленного поля не поможет (насколько я знаю).
Решение
SQL Server 2000 не отслеживает эту информацию.
Могут быть творческие/нечеткие способы угадать, какой была эта дата, в зависимости от модели вашей базы данных.Но, если вы говорите об 1 таблице без привязки к другим данным, то вам не повезло.
Другие советы
Вы не можете проверить наличие изменений без какого-либо механизма аудита.Вы хотите извлечь информацию, которая не была собрана.Если вам просто нужно знать, когда запись была добавлена или отредактирована, самым простым выбором будет добавление поля даты и времени, которое обновляется с помощью триггера при обновлении записи.
Если вам также необходимо отслеживать, когда запись была удалена, вам нужно будет использовать таблицу аудита и заполнять ее из триггеров строкой, когда запись была добавлена, отредактирована или удалена.
Вы можете попробовать программу просмотра журналов;по сути, это просто позволяет вам просматривать транзакции в журнале транзакций, поэтому вы сможете найти оператор, который обновил рассматриваемую строку.Я бы не рекомендовал эту стратегию аудита на уровне производства, но в крайнем случае я нашел ее полезной.
Вот тот, который я использовал;это бесплатно и (только) работает с SQL Server 2000.
Вы можете добавить поле метки времени в эту таблицу и обновить значение этой метки времени с помощью триггера обновления.
ОмниАудит — это коммерческий пакет, который реализует аудит всей базы данных.
Бесплатный метод — написать триггер для каждой таблицы, который при срабатывании добавляет записи в таблицу аудита.