asp删除数据库里的数据保留最新的50条,怎么写
conn.execute("deletefromaccmdbtabwhere......)...
conn.execute ("delete from accmdbtab where...... )
展开
3个回答
展开全部
主键为int或者bigint:
DELETE 表名 WHERE 主键<(SELECT MIN(主键) FROM (SELECT TOP 50 主键) FROM 表名 ORDER BY 主键) ORDER BY 主键
主键为datetime或者smalldatetime:
DELETE 表名 WHERE 时间<(SELECT MIN(时间) FROM (SELECT TOP 50 时间 ORDER BY 时间) FROM 表名 ORDER BY 时间)
not in的效率太低了.
DELETE 表名 WHERE 主键<(SELECT MIN(主键) FROM (SELECT TOP 50 主键) FROM 表名 ORDER BY 主键) ORDER BY 主键
主键为datetime或者smalldatetime:
DELETE 表名 WHERE 时间<(SELECT MIN(时间) FROM (SELECT TOP 50 时间 ORDER BY 时间) FROM 表名 ORDER BY 时间)
not in的效率太低了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我认为按时间会好点。
如果你中间删掉别的可能就造成ID的数不是前50个
delete from accmdbtab where (addtime) not in ("select top 50 [addtime] from accmdbtab order by addtime desc")
你自己改改这个
如果你中间删掉别的可能就造成ID的数不是前50个
delete from accmdbtab where (addtime) not in ("select top 50 [addtime] from accmdbtab order by addtime desc")
你自己改改这个
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请问有时间或者ID做关键字段吗?
DELETE FROM accmdbtab WHERE [ID] NOT IN(SELECT TOP 50 [ID] FROM accmdbtab ORDER BY [ID] DESC)
你自己改改吧.
这个应该可以的.
DELETE FROM accmdbtab WHERE [ID] NOT IN(SELECT TOP 50 [ID] FROM accmdbtab ORDER BY [ID] DESC)
你自己改改吧.
这个应该可以的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询