当前位置: 代码迷 >> Sql Server >> 存储过程使用while 出现有关问题
  详细解决方案

存储过程使用while 出现有关问题

热度:18   发布时间:2016-04-24 10:06:24.0
存储过程使用while 出现问题
    SET @count = 0;
    select @count = count(*) from temporary_expensesdata
    while(@count>0)
{
.....
count--;
}
 大概就是这个结构,循环的次数就是执行的时候表中的次数,但是问题就是它只会循环1500次左右,无论我导入2000条数据,还是五万条数据,都是这样,单独计算条数也是对的,求高手指点 
这个是用来遍历整张表的所有数据,如果有好的解决办法,也请指点
------解决方案--------------------
完整的sql 代码贴出来看下吧
------解决方案--------------------
WHILE条件的限定值都是 
while(@i<@count)
begin
set @i=@i+1
end
这样 

你的不是恒成立?一直循环下去?
------解决方案--------------------
那估计你再处理临时表时出问题了,单单从你贴出来的语句看是没有问题的
------解决方案--------------------
检查循环逻辑
------解决方案--------------------
你确定你这个脚本是写在存储过程里面吗,存储过程里面while语句不会用大括号包起来,另外也没有--这样的语法啊,请参考我给你写的脚本重新修改下

declare @count int
declare @sum int
set @count=5
set @sum=0
while @count>0
begin
   set @sum=@sum+@count
   set @count=@count-1
end

select @sum

------解决方案--------------------
每个循环加个print,print一些信息,看看是否某条数据出现不符合要求的情况或者报错,导致循环停止了,也或者是因为硬件资源不够导致的
  相关解决方案