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

时间:2017-09-30 22:32:35

标签: 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)

感谢。

数据库结构:

strSQL = "SELECT DateAndTime
                ,TagName
                ,Val
                ,SetPoint
                ,Limit_H
                ,Limit_L
                ,Result 
          FROM dbo.Statistic...."

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

1 个答案:

答案 0 :(得分:3)

你走了:

DELETE FROM mytable 
WHERE %%physloc%% IN (SELECT TOP 100 %%physloc%% AS RN FROM mytable ORDER BY RN DESC);