Ром*_*лов 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 条记录。
干得好:
DELETE FROM mytable
WHERE %%physloc%% IN (SELECT TOP 100 %%physloc%% AS RN FROM mytable ORDER BY RN DESC);
Run Code Online (Sandbox Code Playgroud)