Сведения о вопросе

Mathprofi

16:03, 1st July, 2020

Теги

sql-server    

SQL Server 2000: есть ли способ определить, когда запись была изменена в последний раз?

Просмотров: 399   Ответов: 5

В таблице нет последнего обновленного поля, и мне нужно знать, когда были обновлены существующие данные. Поэтому добавление последнего обновленного поля не поможет (насколько я знаю).



  Сведения об ответе

dumai

18:03, 1st July, 2020

SQL Server 2000 не отслеживает эту информацию для вас.

В зависимости от модели базы данных могут существовать творческие / нечеткие способы угадать, что это была за дата. Но, если вы говорите о 1 таблице без связи с другими данными, то вам не повезло.


  Сведения об ответе

#hash

18:03, 1st July, 2020

Вы не можете проверить наличие изменений без какого-то механизма аудита. Вы хотите извлечь информацию, которая еще не была собрана. Если вам просто нужно знать, когда была добавлена или отредактирована запись, добавление поля datetime, которое обновляется с помощью триггера при обновлении записи, было бы самым простым выбором.

Если вам также нужно отслеживать, когда запись была удалена, то вы захотите использовать таблицу аудита и заполнить ее из триггеров строкой, когда запись была добавлена, отредактирована или удалена.


  Сведения об ответе

9090

18:03, 1st July, 2020

Вы можете попробовать средство просмотра журнала; это в основном просто позволяет вам просматривать транзакции в журнале транзакций, поэтому вы должны быть в состоянии найти инструкцию, которая обновила рассматриваемую строку. Я бы не рекомендовал это как стратегию аудита на уровне производства, но я обнаружил, что это полезно в крайнем случае.

Вот один из них, который я использовал; он бесплатный и (только) работает w/ SQL Server 2000.

http://www.red-gate.com/products/SQL_Log_Rescue/index.htm


  Сведения об ответе

KOMP

18:03, 1st July, 2020

Вы можете добавить поле timestamp в эту таблицу и обновить это значение timestamp с помощью триггера обновления.


  Сведения об ответе

Chhiki

18:03, 1st July, 2020

OmniAudit -это коммерческий пакет, который включает в себя аудит всей базы данных.

Свободным методом было бы написать триггер для каждой таблицы, который добавляет записи в таблицу аудита при запуске.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться