我需要使用SQL语句将Order表归档到OrderArchive表
订单表有10,000条记录。
我需要从Order中插入OrderArchive表,并在while循环中输入前1000行。
如何在SQL Server中实现此目的
感谢。
答案 0 :(得分:1)
while 1=1
begin
insert into OrderArchive
select top 1000 * from Order o
where not exists (select top 1 1 from OrderArchive oa where oa.id = o.id)
if @@rowcount = 0
break;
end
如果要删除已删除的行并将其插入存档,则可以使用更好的解决方案:
delete o
output deleted.* into OrderArchive
from Order o
where o.ToDelete = 1