用的是这样循环执行的一个存储过程,但发现有个十分奇怪的问题,循环执行的数据跟 单个执行的不一样,我确定没有执行错误,循环执行的数据完全不是正常的数字,但是要是单个执行就没有问题。难道在存储过程中需要清空变量之类的么?
下面是我用的循环,用的是 [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
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
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
select @tempDate as tempDate
set @tempDate = dateadd(day,1,@tempDate)
end有可能参数或者循环次数跟你的不一样
里面无非就是 声明变量,然后赋值变量,然后用了两个WITH AS 的临时表,用两个临时表组成一个新的表,把生产新的表插入到数据库。
里面无非就是 声明变量,然后赋值变量,然后用了两个WITH AS 的临时表,用两个临时表组成一个新的表,把生产新的表插入到数据库。
谢谢,知道是什么原因了。
里面有一个这样的临时表变量,需要跟根据日期变化。。 有时候我是同时跑其他的数,就把这个日期变化了。
如果单纯只运行这个循环是没有问题的~
set @sql='update dbo.d_user set wt=['+@fragDate_NAME+'_PC_WT]'
EXEC sp_executesql @sql
谢谢,知道是什么原因了。
里面有一个这样的临时表变量,需要跟根据日期变化。。 有时候我是同时跑其他的数,就把这个日期变化了。
如果单纯只运行这个循环是没有问题的~
set @sql='update dbo.d_user set wt=['+@fragDate_NAME+'_PC_WT]'
EXEC sp_executesql @sql