2 wonder boy869 wonder_boy869 于 2014.12.15 09:10 提问

Update 数据表时自动求如何写SQL语句呢(使用SQL Sever)?(设计触发器或存储过程吧)

我有一个学生考试信息表:

考号,姓名,语文成绩,数学成绩,英语成绩,文综成绩,总成绩 (PS:默认各科成绩,总成绩都为 0)
在老师登分时只会登入各个科目的成绩,我使用的是SQL Sever数据库,当老师登入各科成绩时(使用Update),如何触发自动求和?_谢谢!_

3个回答

guwei4037
guwei4037   Ds   Rxr 2014.12.15 10:01
 create trigger trig_学生考试信息表 on 学生考试信息表  
for insert  
as  

begin  
 declare @sum int,@考号 nchar(10)  
 set @考号 = (select 考号 from inserted)  
 set @sum = 
 (select sum(语文成绩+数学成绩+英语成绩+文综成绩) from 学生考试信息表 
 where 考号 = @考号)  


 update 学生考试信息表 set 总成绩 = @sum where 考号 = @考号  

end
save4me
save4me   Ds   Rxr 2014.12.15 10:18

Create Trigger SumScore
On 学生考试信息表 --在表中创建触发器
After Update --Update事件后触发
As --事件触发后所要做的事情
if Update(语文成绩) Or Update(数学成绩) Or Update(英语成绩) Or Update(文综成绩)
Begin
Update 学生考试信息表
Set 总成绩 = I.语文成绩 + I.数学成绩 + I.英语成绩 + I.文综成绩
From 学生考试信息表 T1, Deleted D ,Inserted I
Where T1.考号 = D.考号
End

save4me
save4me   Ds   Rxr 2014.12.18 09:36

上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!