把下面语句改一下试试 if exists(SELECT kcbh from skblast where kcbh=@ID_classname) Begin SELECT @classtemp=skbj,@num=zrs from skb where kcbh=@ID_classname update skblast set skbj =@ALL_class+','+@classtemp,zrs=@ALL_studentnum+@num where kcbh = @ID_classname end ELSE begin insert into skblast(kcbh,skbj,zrs) values(@ID_classname,@ALL_class,@ALL_studentnum) end ******** 改为 SELECT @classtemp=skbj,@num=zrs from skb where kcbh=@ID_classname update skblast set skbj =@ALL_class+','+@classtemp,zrs=@ALL_studentnum+@num where kcbh = @ID_classname insert into skblast(kcbh,skbj,zrs) values(@ID_classname,@ALL_class,@ALL_studentnum) where kcbh <> @ID_classname 也就是说把IF语句改成WHERE
是不是你的其他表的触发引起的呢
默默为你祝福嘛
if exists(SELECT kcbh from skblast where kcbh=@ID_classname)
Begin
SELECT @classtemp=skbj,@num=zrs from skb where kcbh=@ID_classname
update skblast
set skbj =@ALL_class+','+@classtemp,zrs=@ALL_studentnum+@num
where kcbh = @ID_classname
end
ELSE begin
insert into skblast(kcbh,skbj,zrs) values(@ID_classname,@ALL_class,@ALL_studentnum)
end
********
改为 SELECT @classtemp=skbj,@num=zrs from skb where kcbh=@ID_classname
update skblast
set skbj =@ALL_class+','+@classtemp,zrs=@ALL_studentnum+@num
where kcbh = @ID_classname insert into skblast(kcbh,skbj,zrs) values(@ID_classname,@ALL_class,@ALL_studentnum)
where kcbh <> @ID_classname
也就是说把IF语句改成WHERE