如何删除 SQL Server 2008 R2 数据库中的最后 N 条记录?

Ром*_*лов 4 sql sql-server sql-server-2008-r2

我有一个 SQL Server 2008 R2 Express 数据库,其中包含一个带有行的表。当数据库大小变成大约 10gb 时,我需要清除该表中的最后 N 条记录。

我需要这样的东西,但对于 SQL Server

DELETE FROM mytable 
WHERE ROWID IN (SELECT ROWID FROM mytable ORDER BY ROWID ASC LIMIT 100)
Run Code Online (Sandbox Code Playgroud)

谢谢。

数据库结构:

strSQL = "SELECT DateAndTime
                ,TagName
                ,Val
                ,SetPoint
                ,Limit_H
                ,Limit_L
                ,Result 
          FROM dbo.Statistic...."
Run Code Online (Sandbox Code Playgroud)

更新。它不依赖于“DateAndTime”,因为我必须释放空间,但据我所知,1 天(或 1 周)可能只包含 1 条记录……所以我需要删除 200K 条记录。

Sam*_*ami 7

干得好:

DELETE FROM mytable 
WHERE %%physloc%% IN (SELECT TOP 100 %%physloc%% AS RN FROM mytable ORDER BY RN DESC);
Run Code Online (Sandbox Code Playgroud)