总是没法退出循环

南瓜饼 2010-12-30 02:37:36
declare @TID int,@UID int,@RID int
select @UID=UID from bbsUsers where Uname='心酸果冻'
select @TID=TID from bbsTopic
where Ttopic='什么是.net啊'and Tcontents='微软的广告快超过半个北京城了' and TuID=@UID
select @RID=RID from bbsReply
where RtID=@TID
--回帖人-50分
while(1=1)
begin
if exists(select top 1 RuID from bbsReply where RtID=@TID)
begin
select top 1 @UID=RuID from bbsReply where RtID=@TID
update bbsUsers set Upoint =Upoint-50 where UID=@UID
--删除回帖表
delete from bbsReply where RID=@RID
end
else
break
end
...全文
89 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangzh8343 2010-12-30
  • 打赏
  • 举报
回复
当条件成立后加入break;
wpeng8218 2010-12-30
  • 打赏
  • 举报
回复
把这句delete from bbsReply where RID=@RID修改成
delete from bbsReply where RtID=@TID

就能执行到break;
dawugui 2010-12-30
  • 打赏
  • 举报
回复
因为你一直存在:

if exists(select top 1 RuID from bbsReply where RtID=@TID)

而你的删除语句是:

delete from bbsReply where RID=@RID

注意:一个是RtID=@TID,一个是RID=@RID.

wpeng8218 2010-12-30
  • 打赏
  • 举报
回复
exists(select top 1 RuID from bbsReply where RtID=@TID)

这个条件一直成立,无法运行到break;
fengyun142415 2010-12-30
  • 打赏
  • 举报
回复
满足条件才会break
南瓜饼 2010-12-30
  • 打赏
  • 举报
回复
会一直执行 不是有break吗

34,871

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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