sql怎么跳出循环?为什么我这里的return不管用?

MichealTX 2012-03-13 10:06:48
我写的程序如下:
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个表是否为空。
...全文
327 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuizhibai 2012-03-13
  • 打赏
  • 举报
回复
while 1=1 ,难道不是死循环吗?
-狙击手- 2012-03-13
  • 打赏
  • 举报
回复
用sp_executesql 带返回,然后判断,条件满足中断while
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 michealtx 的回复:]

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

引用 2 楼 travylee 的回复:

引用楼主 michealtx 的回复:
我写的程序如下:
declare @k int
set @k=1
declare @RK varchar(100)
set @RK='r'+cast(@k as varchar(100))
……
[/Quote]


break,return的却别我也不懂一同学习
MichealTX 2012-03-13
  • 打赏
  • 举报
回复
哈哈,又见到你了!我开始就是用的break,编译错误,说是break不能用于while之外。谢谢你哦!

[Quote=引用 2 楼 travylee 的回复:]

引用楼主 michealtx 的回复:
我写的程序如下:
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)……
[/Quote]
_0筱筱0_ 2012-03-13
  • 打赏
  • 举报
回复
因为exec里自己是一块独立区域,return的是exec里的区域。
  • 打赏
  • 举报
回复
[Quote=引用楼主 michealtx 的回复:]
我写的程序如下:
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……
[/Quote]

把return改成break试试?我记得break是跳出循环
MichealTX 2012-03-13
  • 打赏
  • 举报
回复
再加一句,我用来测试的表都不是空的。所以那个if的判断条件肯定成立。

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧