首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql话语循环嵌套

2012-08-10 
sql语句循环嵌套SQL codedeclare @next intdeclare @CurrentId intset @next1while @nextdbo.Get_StrAr

sql语句循环嵌套

SQL code
declare @next int    declare @CurrentId int    set @next=1    while @next<=dbo.Get_StrArrayLength(@ReterId,',')    begin        set @CurrentId=dbo.Get_StrArrayStrOfIndex(@ReterId,',',@next)        INSERT INTO [L_ReterInfo](        [CreateTime],[UserProId],[ReterId],[Weight],[Status],[Remark]        )VALUES(        GETDATE(),@Id,@CurrentId,@ReterWeight,@Status,@Remark        )                declare @nexts int            declare @CurrentIdss int        while @nexts<=dbo.Get_StrArrayLength(@ByReterId,',')        begin            set @CurrentIdss=dbo.Get_StrArrayStrOfIndex(@ByReterId,',',@next)            INSERT INTO [L_ByReterInfo](            [CreateTime],[UserProId],[ReterId],[ByReterId]            )VALUES(            GETDATE(),@Id,@CurrentId,@CurrentIdss            )            set @nexts=@nexts+1        end        set @next=@next+1    end


循环里面的内层循环为什么不执行?

[解决办法]
SQL code
declare @next intdeclare @CurrentId intdeclare @nexts int    declare @CurrentIdss intdeclare @End1    intdeclare @End2    intset @next=1set @End1 = dbo.Get_StrArrayLength(@ReterId,',')while @next<=@End1begin    set @CurrentId=dbo.Get_StrArrayStrOfIndex(@ReterId,',',@next)    INSERT INTO [L_ReterInfo](    [CreateTime],[UserProId],[ReterId],[Weight],[Status],[Remark]    )VALUES(    GETDATE(),@Id,@CurrentId,@ReterWeight,@Status,@Remark    )    set @nexts = 1    set @End2 = =dbo.Get_StrArrayLength(@ByReterId /*这在那里定义 赋值的?*/,',')    while @nexts<=@End2    begin        set @CurrentIdss=dbo.Get_StrArrayStrOfIndex(@ByReterId,',',@next)        INSERT INTO [L_ByReterInfo](        [CreateTime],[UserProId],[ReterId],[ByReterId]        )VALUES(        GETDATE(),@Id,@CurrentId,@CurrentIdss        )        set @nexts=@nexts+1    end    set @next=@next+1end 

热点排行