如何用触发器实现这个问题
我将题目和我做的发在下面,就差一个问题.求大虾教教....
(3)学校人力资源管理系统
? 实现学校部门信息、职务、职称和教职工信息管理;
? 实现教师的学籍经历管理;
? 实现教师的家庭关系管理;
? 实现教师的奖惩信息管理;
? 创建存储过程查询学校各部门各种职称的教职工数量;
? 创建触发器当增加、删除教职工和修改教职工部门信息时自动修改相应部门的职工人数;
? 创建规则用于保证教职工的E-Mail的输入格式正确;
? 建立数据库相关表之间的参照完整性约束。
不会做这个问题.!!
(
修改教职工部门信息时自动修改相应部门的职工人数;
)
create database lijuan
use lijuan
create table depart(
部门名 char(20) not null primary key,
职务 char(30),
教职工人数 int)
create table teacher(
职工号 int not null primary key ,
姓名 char(20) not null ,
部门名 char(20),
工作时间 datetime,
任课 char(20),
职称 char(20),
邮箱 char(30))
create table jiating(
姓名 char(20),
职工号 int not null foreign key references teacher(职工号),
父母是否健在 char(30),
婚否 char(5) check(婚否= '是 ' or 婚否= '否 '),
是否有孩子 char(20))
create table xueji(
姓名 char(20) ,
职工号 int not null foreign key references teacher(职工号),
小学 char(30),
小学时间 char(30),
初中 char(30),
初中时间 char(30),
高中 char(30),
高中时间 char(30),
大学 char(30),
大学时间 char(30),
研究生 char(30),
研究生时间 char(30),
博士 char(30),
博士时间 char(30))
create table gongzi(
姓名 char(20),
职工号 int not null foreign key references teacher(职工号),
工资 float,
是否奖惩 char(5) check (是否奖惩= '是 ' or 是否奖惩= '否 '),
奖金 float,
罚金 float
)
insert depart values( '教务处 ', '管理教学事务 ', '0 ')
insert depart values( '学生处 ', '管理学生 ', '0 ')
insert depart values( '教导处 ', '管理教学 ', '0 ')
insert depart values( '后勤部 ', '管理后勤 ', '0 ')
create trigger trig1 on teacher
for insert
as
update depart set 教职工人数=教职工人数+1 where depart.部门名=(select 部门名 from inserted where 部门名= '教务处 ')
update depart set 教职工人数=教职工人数+1 where depart.部门名=(select 部门名 from inserted where 部门名= '学生处 ')
update depart set 教职工人数=教职工人数+1 where depart.部门名=(select 部门名 from inserted where 部门名= '教导处 ')
update depart set 教职工人数=教职工人数+1 where depart.部门名=(select 部门名 from inserted where 部门名= '后勤部 ')
create trigger trig2 on teacher
for delete
as
update depart set 教职工人数=教职工人数-1 where depart.部门名=(select 部门名 from deleted )
update teacher set 部门名= '学生处 ' where 职工号=1(就是这个问题,在更新表的时候怎么同时在原属的部门删除信息,并在新部门人员中多加上一个)
create rule rule1 as @c1 like '%@% '
exec