大家好,有个问题请教。
有个表A,数据如下:
ID name state dept
1 张三 试用 销售部
2 张四 在职 销售部
3 张五 离职 财务部
4 张六 在职 销售部
表B
dept 在职人数
销售部 NULL
财务部 NULL
表字段解释:state代表在职状态,现在只需要取“在职”进行统计就可以
表A和表B通过dept进行关联
我要设置一个触发器自动同步,统计每个部门的在职人数。
也就是每增加一个人或者删除一个人,表B都能对应更新。
例如初始化的时候财务部是1人在职,如果我新增一个财务部的“在职”人员,则B表统计数据自动变成2.
请问这个触发器该怎么写呀。
------解决思路----------------------
create trigger dbo.tr_DeptCounter
on [表A]
after insert,update,delete
as
begin
if exists(select 1 from inserted)
update [表B] set 在职人数=在职人数+1 where dept=inserted.dept
if exists(select 1 from deleted)
update [表B] set 在职人数=在职人数-1 where dept=inserted.dept
end