sql server自动生成属性值的问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 00:39:35
部门表(department)含部门号(DepNo)和部门人数(Depmemsum(int))两个属性
学生表(student)中含所属部门(studepart)属性,如何自动生成部门人数的属性值。 部门号是主键,所属部门是相对应的外键。
最好能用COUNT()语句或者数据储存的方法!
额。。打错了,是创建存储过程
1楼创建触发器遇到的问题是,当某一学生由一个部门调到另一部门,也就是当数据修改时,触发器是不会被触发的

--在Student上建一个insert,update操作的触发器
create trigger tr_Student on Student
for insert,update
as
update a
set DepmemSum=b.con
from Department a,
(select count(*) as con,Studepart from Student s
where exists(select 1 from Deleted where Studepart=s.Studepart)
or exists(select 1 from inserted where Studepart=s.Studepart)
group by Studepart)b
where b.Studepart=a.DepNo--对应部门号,楼主的字段命名很乱,自调整对应字段

来自:求助得到的回答

你的意思是部门人数是统计学生表中对应部门的数量吧?
可以建一个触发器 当学生表里添加或增加值时 部门人数增加或减少