Последние добавленные записи в таблице SQL-Server - PullRequest
0 голосов
/ 08 мая 2009

Можно ли увидеть, когда запись вставлена ​​в таблицу SQL, без использования столбца datetime?

Ответы [ 6 ]

1 голос
/ 08 мая 2009

Если вы хотите видеть метаданные, такие как дата вставки или обновления, вам нужно настроить это. Самый простой способ увидеть вставленную дату - это добавить колонку с вставленной датой. Более сложный способ - добавить аудит (который, честно говоря, должна иметь любая производственная система, содержащая критически важную для бизнеса информацию). Это может включать триггеры или внешнюю систему аудита или отслеживание изменений данных в SQL Server 2008, но ни один из этих методов не настраивается автоматически, и вы не можете использовать их для поиска данных, добавленных перед настройкой системы. Если кто-то недавно добавил запись, вы можете узнать, когда она была добавлена ​​из журнала транзакций, используя инструмент, который читает журналы, но обычно это дорогой способ, и он все равно не скажет вам, кто добавил запись, которая большинство аудиторских решений будет.

1 голос
/ 08 мая 2009

Если вы используете SQL Server 2008, вы можете взглянуть на Изменить сбор данных , который представляет собой новую возможность аудита, которая, я думаю, будет иметь это.

Другая возможность - разместить столбец идентификаторов на таблице. Тогда вы можете просто заказать по убыванию столбца.

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

1 голос
/ 08 мая 2009

нет. SQL Server не имеет этой функциональности из коробки.

0 голосов
/ 08 мая 2009

Для SqlServer вам понадобится программа просмотра / анализа журналов sql, например, из набора инструментов Red Gate.

0 голосов
/ 08 мая 2009

Единственный способ, которым я знаю, - это восстановить вашу резервную копию + журнал транзакций на определенный момент времени. Затем вы можете проверить наличие рядов, постирать, промыть, повторить. Если это SQL 2000, я думаю, что есть некоторые парсеры журналов, так что, возможно, они могли бы помочь вам определить, в какой точке журнала была зафиксирована строка. Если это sql 2005/2008, я не думаю, что еще есть парсер журналов.

0 голосов
/ 08 мая 2009

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

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