删除前几项的记录

QWER123qazqwe 2010-10-08 09:42:39
要删除一个表前几项的记录。
如:
要将表A中的3条最新记录a,b,c通过查询出来再添加到表B中,同时将表A中的原来3条a,b,c删除掉;
...全文
101 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
chiwq520 2010-10-09
  • 打赏
  • 举报
回复
纯支持。。楼上都是高手。。
liyingzi 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qwer123qazqwe 的回复:]
回 tashiwoweiyi (小B样)

调试了下
SQL语句:delete A where s_address in (select top 3 s_address from A order by s_time desc)

结果不是把表的最新3条记录删除了 而是删除了表的所有记录了
[/Quote]
A表里不就只有3条记录吗
liyingzi 2010-10-09
  • 打赏
  • 举报
回复
没有标识列怎么知道哪3条是最新的呢?有日期时间列吗?
yuhuiwqvb 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 denghui_li 的回复:]
SQL code
with cte as
(
select top 3 *
from dbo.table_a
order by id desc;
)
drop table cte;//???
[/Quote]
删除cte这个表有用吗?
楼主要删除的是a表中传到B表的那几条记录呀
闹铃 2010-10-08
  • 打赏
  • 举报
回复

with cte as
(
select top 3 *
from dbo.table_a
order by id desc;
)
insert into dbo.table_b
select * from cte;

with cte as
(
select top 3 *
from dbo.table_a
order by id desc;
)
drop table cte;
QWER123qazqwe 2010-10-08
  • 打赏
  • 举报
回复
触发器? 怎么去弄?对触发器我还停留在表面了解,

请教sibiyellow (sibiyellow)
QWER123qazqwe 2010-10-08
  • 打赏
  • 举报
回复
回 tashiwoweiyi (小B样)

调试了下
SQL语句:delete A where s_address in (select top 3 s_address from A order by s_time desc)

结果不是把表的最新3条记录删除了 而是删除了表的所有记录了
天下如山 2010-10-08
  • 打赏
  • 举报
回复
触发器实现 一步到位。然后肯定要有个字段来标识如何去最新的3条吧。
tashiwoweiyi 2010-10-08
  • 打赏
  • 举报
回复
没有一个时间字段来判断哪3条是最新记录吗?
如果 有代码如下:

insert into B select top 3 * from A order by 时间字段 desc
delete A where 时间字段 in (select top 3 时间字段 from A order by 时间字段 desc)
QWER123qazqwe 2010-10-08
  • 打赏
  • 举报
回复
没有标识

已知条件就只有2个表名A,B,还有记录数 3

我想实现的目的是 删除表A最新的3条记录
SQLCenter 2010-10-08
  • 打赏
  • 举报
回复
insert into B select 3条最新记录 from A where ?
delete A where ?
billpu 2010-10-08
  • 打赏
  • 举报
回复
有标识吗,有就简单

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧