触发器 完美运行

 

  
  
  
  
  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.  

 

你可能感兴趣的:(触发器,职场,insert,完美,休闲)