日期:2014-05-20  浏览次数:20860 次

SQL 如何循环Select出来的结果!
思路如下:
    要清空发件人发件箱信息(信息表Notice),由于信息在一个表中,删除前要判断所有收件人(收件人表NoticeOfTeacher)是否都删除了该条信息,所有收件人都删除了该条信息才能在Notice中删除,否则把该条信息状态设为3(收件箱不会显示了)
以下是我错的存储过程:

if   not   exists  
(select   NoticeOfTeacher.NoticeID   from   NoticeOfTeacher,Notice   where   NoticeOfTeacher.NoticeID=Notice.NoticeID  
and   Notice.NoticeID=(从NoticeOfTeacher循环出来的每一个NoticeID))
begin
delete   from   Notice   where   NoticeID=@NoticeID
end
else
  Update   Notice   set   NoticeState=3   where   Sender=@Sender

也没太说清楚,大概意思估计说清了,请问该如何做?

------解决方案--------------------
楼上的表达太差了,先帮你顶下吧
------解决方案--------------------
把ELSE后面也加上begin ...end
------解决方案--------------------
使用游标是可以解决你的问题的
------解决方案--------------------
Update Notice set NoticeState= CASE WHEN EXISTS(SELECT NoticeID FROM NoticeOfTeacher WHERE NoticeID= Notice .NoticeID) then 3 else 4 end

delete from Notice where NoticeState=4