Rubrik: Datenbanken · ADO.NET Allgemein | VB-Versionen: VB2005, VB2008, VB2010 | 23.01.12 |
Ermitteln des letzten Verwendungsdatums von SQL-Tabellen oder einer -Datenbank Es wird eine Methode vorgestellt, um Datumswerte der letzten Verwendung der Datentabellen einer Datenbank oder der Datenbank selbst zu ermitteln. | ||
Autor: Dietrich Herrmann | Bewertung: | Views: 8.839 |
ohne Homepage | System: Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Nach etlichen Recherchen im Internet eine Methode zu finden, um das letzte Verwendungsdatum einer SQL-Datenbank (SQL-Server2008R2) zu ermitteln, war meine Erkenntnis, dass das nicht durch eine einfache Abfrage möglich sei.
So kam ich dann letztlich auf die folgende vorgestellte Methode, die ein bisschen 'tricky' eben das letzte Verwendungsdatum feststellen kann.
(Vielleicht gibt es noch eine andere, bessere Methode, aber diese ist für meine Begriffe ausreichend)
Ich verwende folgenden SELECTION-Anweisung:
Dim selLastDates As String = _ "SELECT TOP 1 MAX(STATS_DATE(a.id, a.indid)) AS lastUsed, b.name " & _ "FROM sys.sysindexes AS a " & _ "INNER JOIN sys.objects AS b ON a.id = b.object_id " & _ "WHERE (b.type = 'U') AND (b.name <> 'sysdiagrams') " & _ "GROUP BY b.name " & _ "ORDER BY lastUsed DESC"
... und setze eine bestehende SQL-Connection voraus.
Mit diesem SELECT werden, wenn man das 'TOP 1' weg lässt, die letzten Verwendungsdaten aller Tabellen einer Datenbank bereit gestellt.
Benutzt man die SELECTION mit 'TOP 1' wird unter der Voraussetzung der absteigenden Sortierung das letzte Datum der Verwendung der Datenbank bereit gestellt. Dieses kann dann durch bspw.
Dim cmd As New SqlCommand cmd = New SqlCommand(selLastDates, myConnection) myLabel.Text = "Zuletzt bearbeitet am: " + Format(cmd.ExecuteScalar, "dd.MM.yyyy")
... gezeigt werden.