日期:2014-05-18  浏览次数:20470 次

sql怎么跳出循环?为什么我这里的return不管用?
我写的程序如下:
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个表是否为空。

------解决方案--------------------
探讨
我写的程序如下:
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='i……

------解决方案--------------------
因为exec里自己是一块独立区域,return的是exec里的区域。
------解决方案--------------------
while 1=1 ,难道不是死循环吗?