---定义开始和结束时间
declare @st_dt datetime
declare @en_dt datetime
---时间赋值
select @st_dt = '20150601'
select @en_dt = '20150930'
---定义中间变量
declare @dt datetime
select @dt = @st_dt
---开始按照时间循环执行
while @dt <= @en_dt
begin
---这个是个演示,可以替换为需要执行的存储过程
DECLARE @Tel varchar(50),
@ID varchar(50)
DECLARE Subscribe_Cursor CURSOR --定义游标
FOR
(
select top 360 CONVERT(VARCHAR(20),CONVERT(DECIMAL(20,0),F1)),id from SData where Tag=0
)
OPEN Subscribe_Cursor; --打开游标
FETCH NEXT FROM Subscribe_Cursor INTO @Tel,@ID
WHILE @@FETCH_STATUS = 0
BEGIN
insert into LS_ReCall(Tel,ReCallPlanDate)values(@Tel,@dt)
update SData set Tag=1 where id=@ID
FETCH NEXT FROM Subscribe_Cursor INTO @Tel,@ID;
END
CLOSE Subscribe_Cursor; --关闭游标
DEALLOCATE Subscribe_Cursor; --释放游标
---中间变量加1
select @dt = DATEADD(DAY,1,@dt)
end
---定义开始和结束时间
declare @st_dt datetime
declare @en_dt datetime
---时间赋值
select @st_dt = '20150602'
select @en_dt = '20150930'
---定义中间变量
declare @dt datetime
select @dt = @st_dt
---开始按照时间循环执行
while @dt <= @en_dt
begin
---定义开始和结束工号
declare @st_code int
declare @en_code int
---工号赋值
select @st_code =1
select @en_code = 18
---定义中间变量
declare @code int
select @code = @st_code
while @code <= @en_code
begin
DECLARE @ID varchar(50)
DECLARE Subscribe_Cursor CURSOR --定义游标
FOR
(
select top 20 id from LS_ReCall where ReCallPlanDate=@dt and EmpCode is null
)
OPEN Subscribe_Cursor; --打开游标
FETCH NEXT FROM Subscribe_Cursor INTO @ID
WHILE @@FETCH_STATUS = 0
BEGIN
update LS_ReCall set EmpCode=@code where id=@ID
FETCH NEXT FROM Subscribe_Cursor INTO @ID;
END
CLOSE Subscribe_Cursor; --关闭游标
DEALLOCATE Subscribe_Cursor; --释放游标
---中间变量加1
select @code = @code+1
end
---中间变量加1
select @dt = DATEADD(DAY,1,@dt)
end