Ist es möglich, delete
Anweisungen anzuzeigen , die kürzlich im Transaktionsprotokoll aufgetreten sind?
Ist es möglich, delete
Anweisungen anzuzeigen , die kürzlich im Transaktionsprotokoll aufgetreten sind?
Antworten:
Sie werden nicht die genauen Skripte finden, die in SQL ausgeführt wurden. (im Transaktionslog)
Ein Transaktionsprotokoll ist eine Datei, die Informationen zu jeder an der Datenbank vorgenommenen Änderung enthält. Dies umfasst Datenänderungen (Transaktionen), Datenbankänderungen und Sicherungs- / Wiederherstellungsereignisse.
Der Hauptzweck des Transaktionsprotokolls besteht darin, eine Methode bereitzustellen, mit der eine Datenbank bei Bedarf zu einem bestimmten Zeitpunkt wiederhergestellt werden kann. Dies kann das Zurücksetzen von Transaktionen auf einen bestimmten Zeitpunkt oder das Zurücksetzen von Transaktionen von einer vollständigen Sicherungswiederherstellung umfassen.
Weitere Informationen zum Transaktionsprotokoll finden Sie unter http://www.sqlservercentral.com/articles/Design+and+Theory/63350/.
Hier ist ein Skript, das Ihnen die zuletzt durchgeführten Löschabfragen anzeigt
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
ist ein optionales Schlüsselwort in einer DELETE
Anweisung, daher würde ich es hier nicht in das passende Prädikat aufnehmen.
delete
u DELETE
. Ä. Fehlt. Möglicherweise möchten Sie die where-Klausel zwischen Groß- und Kleinschreibung unterscheiden. Beispiel: WHERE dest.text LIKE '%DELETE %' COLLATE Latin1_General_CI_AS
Sie können die einzelnen gelöschten Zeilen anzeigen, indem Sie nach LOP_DELETE_ROWS-Vorgängen suchen, die sich noch im Protokoll befinden:
select * from fn_dblog(NULL, NULL)
where Operation = 'LOP_DELETE_ROWS'
Wenn das Protokoll wiederverwendet wurde (im einfachen Wiederherstellungsmodell) oder durch Sicherung abgeschnitten wurde (im vollständigen Wiederherstellungsmodell oder Massenwiederherstellungsmodell), können Sie nur die Protokollvorgänge anzeigen, die im Protokoll noch verfügbar sind.
Das Verständnis der Protokollvorgänge ist recht komplex. Sie müssen sich mit Dingen wie Rückgängigmachen oder Kompensieren von Vorgängen vertraut machen, um einen Sinn für einige auftretende Protokollmuster zu erhalten. Unkomplizierte festgeschriebene Löschvorgänge sind jedoch recht einfach zu verstehen.