在更新group_grade后,在项目组上创建一个触发器,更新该组学生的学生成绩

时间:2016-02-17 20:32:08

标签: sql-server-2008

这些表可以通过简单连接加入,但由于我有不同的user_role,因此连接部分有点困难。

以下是我如何加入这些表的代码:

select 
    g.group_name, u.first_name
from  
    Group1 g 
join 
    Student_Group sg on g.groupid = sg.groupid
join 
    User1 u on sg.userid = u.userid
join 
    User_Role ur on u.userid = ur.userid
join 
    Role1 r on ur.roleid = r.roleid
where 
    r.name = 'Student'

1 个答案:

答案 0 :(得分:0)

- 这就是我认为这样做的方式Dave

ALTER TRIGGER update_stud_grade_trigger     ON group1
    AFTER UPDATE     AS
    BEGIN
    SET NOCOUNT ON;     UPDATE学生
    SET student.student_grade = Group1.grade /计数(User.userid)
         来自INSERTED ins         在ins.groupid = g上加入group1 g。 GROUPID
        在g.groupid = sg.groupid

上加入Student_Group sg
    join User1 u on sg.userid = u.userid
    join User_Role ur on u.userid = ur.userid
    join Role1 r on ur.roleid = r.roleid
where r.name = 'Student' and ins.group_grade = '10' 

END