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