如何删除 SQL Server 2008 R2 数据库中的最后 N 条记录? [复制]
Posted
技术标签:
【中文标题】如何删除 SQL Server 2008 R2 数据库中的最后 N 条记录? [复制]【英文标题】:How to delete last N records in SQL Server 2008 R2 database? [duplicate] 【发布时间】:2017-09-30 22:32:35 【问题描述】:我有一个 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 记录。
【问题讨论】:
请参阅ROW_NUMBER,也许 - 仍然应该有一个正确定义的顺序。可以尝试依赖索引顺序,ymmv;最好选择业务订单 - DateAndTime,也许? 查看here ROW_NUMBER 的示例。 “最后一个”是什么意思。按照什么命令? 【参考方案1】:给你:
DELETE FROM mytable
WHERE %%physloc%% IN (SELECT TOP 100 %%physloc%% AS RN FROM mytable ORDER BY RN DESC);
【讨论】:
以上是关于如何删除 SQL Server 2008 R2 数据库中的最后 N 条记录? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何破解windows server 2008r2远程连接数2个的限制
如何在 SQL Server 2008 R2 中的所有行中删除只有一个值的多列
server 2008 r2能安装sql server 2016吗?
如何将所有数据库(快速)自 sql server 2008 express 传递到 sql server 2008 R2(无 express)