考虑这个SQL:
while (@Level<6)
begin
if (not exists(select 1 from tbtask where row_guid in (select Row_GUID from Cad_Catalog where CatalogID=@TaskCatalogID)))
begin
select @TaskCatalogID=PcatalogID from Cad_Catalog where CatalogID=@TaskCatalogID
set @isUserCreateCatalog=1
end
else
break
set @Level=@Level+1
end
执行else
和break
时,它仍会执行。
set @Level=@Level+1
break
跳转到while循环!
如果执行set @Level=@Level+1
?????所以我想
set @Level=@Level+1
没用!这是真的吗?
答案 0 :(得分:1)
正如Jorge所说,只要你说“休息”,循环就会停止。因此不会更新@Level变量。
但是如果你想突破,那么更新变量应该无关紧要,如果它只在循环中使用。
如果您需要更新级别,可以这样做。
else
begin
set @Level=@Level+1
break
end
set @Level=@Level+1
end