SQL Server 2000:Gibt es eine Möglichkeit festzustellen, wann ein Datensatz zuletzt geändert wurde?

StackOverflow https://stackoverflow.com/questions/2809

  •  08-06-2019
  •  | 
  •  

Frage

Die Tabelle enthält kein zuletzt aktualisiertes Feld und ich muss wissen, wann vorhandene Daten aktualisiert wurden.Das Hinzufügen eines zuletzt aktualisierten Feldes hilft also nicht (soweit ich weiß).

War es hilfreich?

Lösung

SQL Server 2000 speichert diese Informationen nicht für Sie.

Abhängig von Ihrem Datenbankmodell gibt es möglicherweise kreative/unscharfe Möglichkeiten, dieses Datum zu erraten.Wenn Sie jedoch von einer Tabelle sprechen, die keinen Bezug zu anderen Daten hat, haben Sie Pech.

Andere Tipps

Ohne einen Prüfmechanismus können Sie nicht nach Änderungen suchen.Sie möchten Informationen extrahieren, die nicht erfasst wurden.Wenn Sie nur wissen müssen, wann ein Datensatz hinzugefügt oder bearbeitet wurde, wäre das Hinzufügen eines Datums-/Uhrzeitfelds, das über einen Auslöser aktualisiert wird, wenn der Datensatz aktualisiert wird, die einfachste Wahl.

Wenn Sie auch nachverfolgen müssen, wann ein Datensatz gelöscht wurde, sollten Sie eine Audit-Tabelle verwenden und diese aus Triggern mit einer Zeile füllen, wenn ein Datensatz hinzugefügt, bearbeitet oder gelöscht wurde.

Sie könnten es mit einem Protokoll-Viewer versuchen;Auf diese Weise können Sie sich im Grunde nur die Transaktionen im Transaktionsprotokoll ansehen, sodass Sie in der Lage sein sollten, die Anweisung zu finden, die die betreffende Zeile aktualisiert hat.Ich würde dies nicht als Audit-Strategie auf Produktionsebene empfehlen, aber ich habe festgestellt, dass es im Notfall nützlich ist.

Hier ist eines, das ich verwendet habe;Es ist kostenlos und funktioniert (nur) mit SQL Server 2000.

http://www.red-gate.com/products/SQL_Log_Rescue/index.htm

Sie können dieser Tabelle ein Zeitstempelfeld hinzufügen und diesen Zeitstempelwert mit einem Aktualisierungstrigger aktualisieren.

OmniAudit ist ein kommerzielles Paket, das die Prüfung einer gesamten Datenbank implementiert.

Eine kostenlose Methode wäre, für jede Tabelle einen Trigger zu schreiben, der beim Auslösen Einträge zu einer Prüftabelle hinzufügt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top