例如:表一:一个员工表 此表有个 部门人数列
表二: 部门表 两表通过deptid关联
现在的问题是 sql server默认不支持行级触发器 当一次更新了多条记录时(把多个员工有一个部门转到另一个部门) 触发器只能触发一次 即部门人数只增加了1(现在只考虑增加的情况)
update employer set dept_id='d002' where employer_id in ('120604','120606') 结果:d002部门只增加了1
据说用游标可以实现,在sql server中除游标还有其他方法吗,在平常应用中是不是一般不推荐用游标
4 个解决方案
#1
不好意思,部门人数列在部门表中,写错了
#2
触发一次,批量更新。
#3
不大明白,楼主能不能说的详细点
#4
--创建触发器每当修改员工的部门后自动统计相应部门人数(这里只考虑部门人数的增加)
create trigger auto_countrs
on employer for update
as
begin
update departments set dept_rs=dept_rs+1
from departments d, inserted i
where d.deptid=i.deptid
end
以上是触发器代码
create trigger auto_countrs
on employer for update
as
begin
update departments set dept_rs=dept_rs+1
from departments d, inserted i
where d.deptid=i.deptid
end
以上是触发器代码
#1
不好意思,部门人数列在部门表中,写错了
#2
触发一次,批量更新。
#3
不大明白,楼主能不能说的详细点
#4
--创建触发器每当修改员工的部门后自动统计相应部门人数(这里只考虑部门人数的增加)
create trigger auto_countrs
on employer for update
as
begin
update departments set dept_rs=dept_rs+1
from departments d, inserted i
where d.deptid=i.deptid
end
以上是触发器代码
create trigger auto_countrs
on employer for update
as
begin
update departments set dept_rs=dept_rs+1
from departments d, inserted i
where d.deptid=i.deptid
end
以上是触发器代码