トランザクションログで最近発生したdelete
ステートメントを表示することはできますか?
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
ログでLOP_DELETE_ROWS操作を探して、削除された個々の行を表示できます。
select * from fn_dblog(NULL, NULL)
where Operation = 'LOP_DELETE_ROWS'
ログがリサイクルされた場合(単純復旧モデルの場合)またはバックアップによって切り捨てられた場合(完全復旧モデルまたは一括復旧モデルの場合)、ログで引き続き使用可能なログ操作のみを表示できます。
ログ操作の理解は非常に複雑です。発生する可能性のあるいくつかのログパターンを理解するために、元に戻す操作や補正操作などに注意する必要がありますが、単純なコミットDELETEは簡単に理解できます。