Ich habe eine SQL Server 2008 R2 Express-Datenbank mit einer Tabelle mit Zeilen. Und als Datenbankgröße ungefähr 10 GB wurde, muss ich die letzten N Datensätze aus dieser Tabelle reinigen.So löschen Sie die letzten N Datensätze in der SQL Server 2008 R2-Datenbank?
Ich brauche so etwas, aber für SQL Server
DELETE FROM mytable
WHERE ROWID IN (SELECT ROWID FROM mytable ORDER BY ROWID ASC LIMIT 100)
Dank.
Datenbankstruktur:
strSQL = "SELECT DateAndTime
,TagName
,Val
,SetPoint
,Limit_H
,Limit_L
,Result
FROM dbo.Statistic...."
UPD. Es hängt nicht von "DateAndTime" ab, weil ich Speicherplatz frei haben muss, aber 1 Tag (oder 1 Woche) kann nur 1 Datensatz umfassen, wie ich verstehe ... also muss ich 200K Datensätze löschen.
See [ROW_NUMBER] (https://en.wikipedia.org/wiki/Hypervisor), vielleicht - immer noch da, obwohl eine richtige definierte Ordnung sein sollte. Man kann versuchen, sich auf die Indexreihenfolge zu verlassen, ymmv; Es ist viel besser, ein Geschäft zu bestellen - DateAndTime, vielleicht? – user2864740
Siehe [hier] (https://stackoverflow.com/a/4193757/2276098) ein Beispiel für ROW_NUMBER. –
Was meinst du mit "last". Wie bestellt von was? –