MSSQL letztes Änderungsdatum für eine Tabelle ermitteln


Wenn man Daten aus einer Datenbank in seiner Anwendung nicht immer wieder neu abrufen möchte und diese z.B. in statischen Listen vorhält, will man von Zeit zu Zeit doch ermitteln ob es sich bei den vorgehaltenen Daten noch um die aktuellen Daten handelt. Da es hier sehr Aufwendig sein kann jeden einzelnen Datensatz zu überprüfen, wäre es von Vorteil wenn man erst herausbekommen würde, wann die letzte Datensatzänderung in dieser Tabelle stattgefunden hat. Dann kann man dieses Datum mit dem Datum vergleichen, als man die Datensätze das erste/letzte mal abgerufen hat.

Dafür kann das Folgende SQL Schnipsel verwendet werden:

SELECT TOP 1 last_user_update FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'DBName') AND OBJECT_ID=OBJECT_ID('TabellenName')
Order By last_user_update ASC

Hier wird als Einzelner Wert die Letzte Datensatzänderung in der Übergebenen Datenbank und Tabelle zurück gegeben.

ACHTUNG: Man muss aufpassen, das hier auch “Null” bzw. kein Wert zurückkommen kann, wenn der DB Server z.B. neu gestartet wurde, da es sich nur um Temporäre Tabellen handelt, die Ihre Daten nicht dauerhaft im Dateisystem ablegen und sich der Wert erst wieder ändert wenn ein Datensatz geändert wurde.

Quelle:

http://blog.sqlauthority.com/2009/05/09/sql-server-find-last-date-time-updated-for-any-table/

Advertisements

2 Gedanken zu „MSSQL letztes Änderungsdatum für eine Tabelle ermitteln

  1. Lars

    Gute Idee die Sache. Nur eine kleine Anmerkung: sys.dm_db_index_usage_stats gibt es seit SQL Server 2005 ist eine View, keine Tabelle. ;) Das Reset der Daten betrifft jeden Management-View innerhalb aller DBs der Instanz.

    Leider muss man auch aufpassen, wenn man verschiedene Nutzer hat – idR. haben nicht alle die Berechtigung derartige Views auslesen zu dürfen.

    Gefällt mir

    Antwort

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s