MS SQL 2008 Как читать из журнала - PullRequest
2 голосов
/ 12 марта 2010

У меня есть таблица с множеством строк, есть ли способ узнать , когда конкретный ряд был вставлен ? (У меня нет столбцов времени создания / обновления)

Спасибо

Ответы [ 2 ]

3 голосов
/ 12 марта 2010

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

Если вы хотите увидеть, как неприятно делать простую запись в журнале транзакций, взгляните на http://sqlfascination.com/2010/02/03/how-do-you-decode-a-simple-entry-in-the-transaction-log-part-1/

Если вы хотите изменить информацию, вам нужно либо встроить ее в программное обеспечение, либо из-за того, что вы используете SQL Server 2008, в этом выпуске есть новая функция, называемая сбор данных изменений (http://msdn.microsoft.com/en-us/library/bb522489.aspx), может сделать это для вас в действительности.

Учитывая, что вы работаете в SQL 2008, я бы порекомендовал использовать функцию CDC.

1 голос
/ 12 марта 2010

Нет, обычно журнал не доступен для анализа пользователем. она также не организована таким образом, чтобы легко получить эту информацию, если только вы не расшифруете ее с самого начала. Кроме того, поскольку журналы удаляются после каждого резервного копирования .... вы можете даже не знать об этом, если только вы никогда не создадите резервную копию.

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

Обычно, если вы хотите, чтобы эта информация была частью таблицы, сделайте ее частью таблицы (т.е. вставьте столбцы меток времени создания / обновления).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...