我有一个包含大量数据的表,它需要被分解成块并传递给插入查询。我需要为此编写一个存储过程存储过程的逻辑是这样起草的(也可以改进):
VARIABLE= SELECT COUNT (*) FROM TABLE1
RUN_LOOP= (VARIABLE / 10) +1
COUNTER = 1
start= 0
END_ALL =1000
BEGIN
WHILE @COUNTER <@RUN_LOOP
SELECT * FROM TABLE2
WHERE RN BETWEEN @start+1 AND @END_ALL
COUNTER = COUNTER+1
@start=END_ALL + 1
@END_ALL = END_ALL+1000
END
循环值应该如何改变:
VARIABLE RUN_LOOP COUNTER start END_ALL
3125 4 1 0 1000
3125 4 2 1001 2000
3125 4 3 2001 3000
3125 4 4 3001 4000
您可以使用Lua脚本完成此操作。参考这里的文档。