我写的程序如下:
declare @k int 
set @k=1
declare @RK varchar(100)
set @RK='r'+cast(@k as varchar(100))
declare @break varchar(10) 
set @break='0'declare @RKNotEmpty varchar(100)
set @RKNotEmpty='if exists(select * from '+@RK+') return'while 1=1
begin
print @RKNotEmpty
exec(@RKNotEmpty)
end为什么那个return不管用?为什么还是死循环?求助大家,帮我想个跳出这个循环的办法。必须要用变量的,因为我的程序需要,因为我要判断100个表是否为空。

解决方案 »

  1.   


    把return改成break试试?我记得break是跳出循环
      

  2.   

    因为exec里自己是一块独立区域,return的是exec里的区域。
      

  3.   

    哈哈,又见到你了!我开始就是用的break,编译错误,说是break不能用于while之外。谢谢你哦!
      

  4.   

    break,return的却别我也不懂一同学习
      

  5.   

    用sp_executesql 带返回,然后判断,条件满足中断while
      

  6.   

    while 1=1 ,难道不是死循环吗?