Gesucht SQL Statement, Records älter als 1 Monat löschen

10/01/2008 - 11:32 von Michael Böckinghoff | Report spam
Hallo NG,

Ich habe ein Tabelle in der werden diverse logbuch eintràge gemacht,
nach einer weile wird die Anzahl der Eintràge aber zu viel.

Jetzt möchte ich einfach per SQL Statement die Records löschen die àlter als
1 Monat gegenüber der
SQLServer Zeit sind.

Die Tabelle ist folgendermaßen aufgebaut:

ID DATE (und noch diverse andere Spalten)

100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
100 10.01.2008 08:00:00
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
10/01/2008 - 11:51 | Warnen spam
Hallo Michael,

"Michael Böckinghoff" schrieb:

Jetzt möchte ich einfach per SQL Statement die Records löschen die àlter als 1 Monat gegenüber der SQLServer Zeit sind.



DELETE FROM <Tabelle> WHERE DATEDIFF( m, <Datumsfeld>, GETDATE() ) > 1

Falls Du eine Anwendung hast, aus der das SQL Statement aufgerufen wird,
wàre es aber evtl. sinnvoll, das Datum vorher im Programm zu ermitteln
und dann

DELETE FROM <Tabelle> WHERE <Datumsfeld> < <Datumswert>

auszuführen. Das sollte IMO schneller sein, da die Funktion DATEDIFF nicht
für jeden einzelnen Wert separat aufgerufen wird.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen