我有一个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记录。
答案 0 :(得分:3)
你走了:
DELETE FROM mytable
WHERE %%physloc%% IN (SELECT TOP 100 %%physloc%% AS RN FROM mytable ORDER BY RN DESC);