我有一个SQL语句,它返回许多行,并将这些行插入到VBA中的数组中。然后我循环遍历数组并粘贴到电子表格行中。
我的内存耗尽,因此我想分批进行粘贴。
我不介意每次运行相同的SQL查询来收集数据,只要我能避免内存问题。我怎样才能做到这一点?在我的SQL中我以前使用LIMIT,但在这里我想说选择第一个...... 1000?然后是下一个1000等
答案 0 :(得分:1)
要“选择第一个...... 1000?然后选择下一个1000”,请执行以下操作:
SELECT * FROM table
LIMIT <limit>
OFFSET <batch * limit>
其中限制等于1000,您的批次将从0开始,每次调用增加1
答案 1 :(得分:1)
我发现最简单的方法是通过传入2个参数来创建一个使用基本分页函数的存储过程调用:每页行数和请求页面。
查看此问题:How to do pagination in SQL Server 2008
如果您以编程方式调用存储过程,则可以使用while循环,直到没有得到任何结果。