关于触发器问题
CREATE TRIGGER Tr_gather ON dbo.grade_table
FOR UPDATE
AS
------声明变量
declare @num char(15),@chinese decimal(18, 0),@math decimal(18, 0),@english decimal(18, 0),@gather decimal(18,0)
select @num=num,@chinese=chinese,@math=math,@english=english from inserted
------求出总分
set @gather=case
when (@chinese<0 and @math<0 and @english<0) then 0
when (@chinese<0 and @math<0) then @english
when (@chinese<0 and @english<0) then @math
when (@math<0 and @english<0) then @chinese
when @chinese<0 then @math+@english
when @math<0 then @chinese+@english
when @english<0 then @chinese+@jckcj
else @chinese+@math+@english
end
----更新总分
update grade_table
set gather=@gather
where num=@num
grade_table的结构如下:
num char(15)
chinese decimal(18, 0)
math decimal(18, 0)
english decimal(18, 0)
gather decimal(18, 0)
写这个触发器的目的就是当输入一个学生的语文、数学、外语三门成绩之后,自动算出总分,成绩小于0的表示缺考或舞弊等原因,不加到总分里
我看了这个触发器没什么错误,但是我输入成绩之后,总分(gather)变为空值了,但是有时候得出来的总分又是对的,不知道是什么原因,请各位大虾看看