Просмотреть операторы удаления в журнале транзакций


12

Можно ли просмотреть deleteнедавние утверждения в журнале транзакций?


Сами операторы не записываются в журнал транзакций. В какой модели восстановления находится ваша база данных? Этот ответ может быть полезен
Мартин Смит

Ответы:


11

вы не найдете точные сценарии, которые были выполнены на sql. (в журнале транзакций)

Журнал транзакций - это файл, который содержит информацию о каждом изменении, внесенном в базу данных. Это включает в себя модификации данных (транзакции), модификации базы данных и события резервного копирования / восстановления.

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

чтобы узнать больше о журнале транзакций http://www.sqlservercentral.com/articles/Design+and+Theory/63350/

Вот скрипт, который покажет вам последние запущенные запросы на удаление

SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
where dest.TEXT like '%Delete%from%'
ORDER BY deqs.last_execution_time DESC

К вашему сведению: FROMэто необязательное ключевое слово в DELETEутверждении, поэтому я бы не стал включать его в соответствующий предикат.
Джон Зигель

Правда, оператор From in delete является необязательным, я сохранил его только для того, чтобы ограничить результаты моего запроса. но да, вы правы
AmmarR

Обратите внимание, что для экземпляров SQL Server, чувствительных к регистру, приведенный выше код будет пропущен deleteи DELETEт. Д. Возможно, вы захотите сделать предложение where без учета регистра, например: WHERE dest.text LIKE '%DELETE %' COLLATE Latin1_General_CI_AS
Макс Вернон

11

Вы можете просмотреть отдельные строки, которые были удалены, ища операции LOP_DELETE_ROWS, все еще находящиеся в журнале:

select * from fn_dblog(NULL, NULL) 
where Operation = 'LOP_DELETE_ROWS'

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

Понимание операций журнала довольно сложно, вам нужно знать о таких вещах, как отмена или компенсация операций, чтобы понять некоторые шаблоны журналов, с которыми вы можете столкнуться, но прямое подтвержденное УДАЛЕНИЕ довольно легко понять.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.