
既然丢失了,先得想办法看能不能修复,因为Resid和SoftVer是多对一的关系,同样的Resid其他用户有提交成功过,所以修复SoftVer的值并不困难,写了个存储过程来完成:
declare @resid int,@softver int
declare err cursor for select resid from mz_queuetb where status=0 and softver=0 group by resid
open err
fetch next from err into @resid
while @@fetch_status=0
begin
select top 1 @softver=softver from mz_queuetb where status=1 and resid=@resid order by id desc
update mz_queuetb set softver=@softver where status=0 and softver=0 and resid=@resid
fetch next from err into @resid
end
close err
deallocate err后来再遇上这问题就手动执行下存储过程,今天想不如写个小程序来定时执行这个存储过程吧,但突然意识到这思路有问题,本末倒置了,存储过程虽能解决问题,但只是治标不治本的方法,正确的应是在前台对提交的信息进行验证,信息不全时阻止提交到队列并提示用户重新提交,这样只是一点小修改就可以了。
评论(0)
暂无评论。