触发器 完美运行

 

 
 
  1. CREATE TRIGGER  NO5 ON SC  
  2. FOR insert,delete,update 
  3. AS 
  4. declare @totalScore int 
  5. declare @score1 int 
  6. declare @score2 int 
  7. declare @credit int 
  8. declare @Cno char(4)  
  9. declare @Sno char(10)  
  10.  
  11. select @score1=l.Grade from inserted l  
  12. select @score2=l.Grade from deleted l/*修改时删掉的那个分数*/  
  13. select @Cno=l.Cno from inserted l  
  14. select @Sno=l.Sno from inserted l  
  15. if(@score1>=60)  
  16. begin 
  17. select @credit=Ccredit from Course where Course.Cno=@Cno   
  18. select @totalScore=(select totalScore from Student where Sno=@Sno)+@credit  
  19. update Student  set totalScore=@totalScore where Sno=@Sno   
  20. end 
  21.  
  22. if update(grade)  
  23. begin 
  24. select @score2=l.Grade from inserted l  
  25. select @score1=l.Grade from deleted l/*修改时删掉的那个分数*/  
  26. select @credit=Ccredit from Course where Course.Cno=@Cno   
  27. select @Cno=l.Cno from inserted l  
  28. select @Sno=l.Sno from inserted l  
  29. if(@score1>60 and @score2<60)--把及格改成不及格  
  30. update Student set totalScore=totalScore-@credit where Sno=@Sno   
  31. else if(@score2>60 and @score1<60)--把不及格改成及格  
  32. update Student set totalScore=totalScore+@credit where Sno=@Sno   
  33. end 
  34.  
  35.  
  36.  

 

本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/702564

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值