日期:2014-05-17  浏览次数:20362 次

循环执行存储过程遇到一个奇怪的问题~!!

用的是这样循环执行的一个存储过程,但发现有个十分奇怪的问题,循环执行的数据跟 单个执行的不一样,我确定没有执行错误,循环执行的数据完全不是正常的数字,但是要是单个执行就没有问题。

难道在存储过程中需要清空变量之类的么?
下面是我用的循环,用的是 [dbo].[PR_everyday_DP_coded]这个存储过程,里面有赋值有函数,有查询有插入,但我总觉得应该不会影响的啊

declare @beginDate datetime, @endDate datetime, @tempdate datetime
     set @beginDate = '2013-08-01 00:00:00'
     set @endDate = '2013-08-31 00:00:00' 
     set @tempDate = @beginDate 
     while @tempDate <= @endDate
       begin
    exec  [dbo].[PR_everyday_DP_coded] @tempDate 
 
        set @tempDate = dateadd(day,1,@tempDate)
     end

------解决方案--------------------
declare @beginDate datetime, @endDate datetime, @tempdate datetime
     set @beginDate = '2013-08-01 00:00:00'
     set @endDate = '2013-08-31 00:00:00' 
     set @tempDate = @beginDate 
     while @tempDate <= @endDate
       begin
print @tempdata
    --exec  [dbo].[PR_everyday_DP_coded] @tempDate 
 
        set @tempDate = dateadd(day,1,@tempDate)
     end