日期:2014-05-18  浏览次数:20492 次

帮忙看下这段SQL哪出问题了
SQL code
declare @i int,@id int,@j int,@temp int
 set @i    =    1
 select  @j =  count(*) from com_user where user_id >14592
while @i < @j 
begin
    select  @temp = COUNT(*) from com_user where user_id =(14592 +@i)
    select  @id =      user_id from com_user where user_id =(14592 +@i)
     while @temp <> 0
     begin
        insert into com_group_user(group_id,user_id)values('SYS_全体人员群组',@id)
     set @i=@i+1
     end
end


其中@j =3750

user_id 非连续 因为是自增 又删过数据 断了

------解决方案--------------------
把 set @i=@i+1
这句拿到最外面的 while 中
第二个while 另外加退出循环的条件