SQL语句'break'make set是否没有用?

时间:2013-10-25 11:47:08

标签: sql-server tsql

考虑这个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

执行elsebreak时,它仍会执行。

set @Level=@Level+1

break跳转到while循环!

如果执行set @Level=@Level+1 ?????所以我想

 set @Level=@Level+1

没用!这是真的吗?

1 个答案:

答案 0 :(得分:1)

正如Jorge所说,只要你说“休息”,循环就会停止。因此不会更新@Level变量。

但是如果你想突破,那么更新变量应该无关紧要,如果它只在循环中使用。

如果您需要更新级别,可以这样做。

else
  begin
     set @Level=@Level+1
     break
  end
  set @Level=@Level+1
end