我有一张几百万行的表。我需要使用SSIS将批量数据传输到另一个表。我尝试使用以下查询来获取批量记录,但循环不会停止。
while exists (select top 1 * from dbo.test
where (date > '2018-04-25'
and date < '2018-04-27'))
Begin
select * from dbo.test
where id in ( select top (1000) id
where (date > '2018-04-25'
and date < '2018-04-27'))
order by date asc
End
答案 0 :(得分:2)
这应该是您需要的唯一查询:
config.ini
在SSIS中,在此操作的“数据流”选项卡的“目标编辑器”中,为“每批次行数:”设置输入select * from dbo.test
where id in ( select id
where (date > '2018-04-25'
and date < '2018-04-27'))
。没有必要尝试使用循环和前1000名。我强烈建议不要采用这种方法,因为性能会更差。可能是指数级的。