读书人

关于sql话语的多重循环

发布时间: 2012-09-08 10:48:07 作者: rapoo

关于sql语句的多重循环
下面的代码里面只会执行内层的while语句,外层的while不会执行,请高手帮忙。
ps. sql server 怎么调试的?断点什么的也搞不懂,不会用啊……

SQL code
declare @MyCounter intdeclare @MyDateTime datetimeset @MyCounter = 1set @MyDateTime = '2012-10-5 00:00:00'while(@MyCounter < 16)    begin        while(@MyDateTime < '2012-10-5 23:59:59')            begin            insert into dbo.H_MURunTime(MUId,[CurTime],RunTime)            values(@MyCounter,@MyDateTime,1)            set @MyDateTime = dateadd(hh,1,@MyDateTime)            end    set @MyCounter = @MyCounter + 1    end


[解决办法]
print看看.
[解决办法]
如果是SQL SERVER 2005以下版本,只能通过加print xxxx 或 select xxx之类的进行调试
[解决办法]
第一次代码执行 里面的while执行完毕后。 其实外出while 也执行了。但是 第二次以后的内层while不会执行因为(@MyDateTime < '2012-10-5 23:59:59')不会再满足条件了
[解决办法]
不是外层的while不执行,是执行了但是内层的while已经进不去了。因为第一次内层的while循环出去后日期就变成2012-10-6 00:59:59 所以内层while再也进不去了。如果你要再进的话
SQL code
declare @MyCounter intdeclare @MyDateTime datetimeset @MyCounter = 1set @MyDateTime = '2012-10-5 00:00:00'while(@MyCounter < 16)    begin        while(@MyDateTime < '2012-10-5 23:59:59')            begin            insert into dbo.H_MURunTime(MUId,[CurTime],RunTime)            values(@MyCounter,@MyDateTime,1)            set @MyDateTime = dateadd(hh,1,@MyDateTime)            end    set @MyCounter = @MyCounter + 1    SET @MyDateTime = '2012-10-5 00:00:00'    end 

读书人网 >SQL Server

热点推荐