我有一个包含大量数据的表,它需要分解成块并传递给插入查询。我需要为此逻辑编写一个存储过程,因为存储过程是这样起草的(也可以改进):
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