本学生选课系统基于SQL Server数据库设计开发,旨在为高校提供高效便捷的课程管理与选择平台。
创建触发器以在Student表中的数据发生变化(插入、更新或删除)时自动修改Dept_age表的数据。需要两个触发器来实现这一功能:
1. 当在Student表中插入或更新学生信息时,需同时更新或向Dept_age表添加新的记录:
```sql
CREATE TRIGGER trg_newage ON Student
AFTER INSERT, UPDATE
AS
BEGIN
-- 更新已存在的部门年龄平均值
UPDATE Dept_age SET Avg_age = ( SELECT AVG(Sage) FROM Student WHERE Student.Sdept = Dept_age.Sdept )
WHERE Sdept IN ( SELECT Sdept FROM inserted );
-- 插入新的部门及其对应的年龄平均值到Dept_age表中
INSERT INTO Dept_age (Sdept, Avg_age)
SELECT Sdept, AVG(Sage)
FROM Student
WHERE Sdept IN (SELECT Sdept FROM inserted ) AND Sdept NOT IN(SELECT Sdept FROM Dept_age)
GROUP BY Sdept;
END;
```