下面一般是,作为SQL新手第一次写循环嵌套的办法,但是大家会发现一个问题,那就是变量@i总是不能进入第二个循环。
declare @i int ,@j int, @k int set @i = 1 set @k = 1 set @j = 1 --注意 set @j=1 的位置, @j 是内部循环变量的初始变量。 while @i <= 12 begin while @j <= 5 begin set @k = @k +1 set @j = @j +1 end set @i=@i+1 end
那么解决问题的办法如下:
declare @i int ,@j int, @k int set @i =1 set @k=1 while @i <=12 begin set @j =1 --@j位置的调整,将其调整到第一循环的begin开的内部。 while @j <=5 begin set @k =@k +1 set @j =@j +1 exec(@sql) end set @i=@i+1 end
大家可以发现两端代码的不同之处,就是因为将 set @j=1 的位置进行了调整。
事实上,解决SQL,while 嵌套循环外部循环变量不能进入内部循环的解决办法就是 将内部循环变量的初始变量设置要放在外部循环的begin内部。
---------------------------------------------------华丽丽的分割线----------------------------------------------------------
最后,介绍下自己,网名:一也。