(3)员工调出
进行员工调出操作是在员工信息表中删除该员工的记录,可以为员工信息表设计一个Delete触发器,当员工信息表执行Delete操作后,工资表、部门表中的记录也将全部删除。定义这个触发器名称为staff_delete。 其实现代码如下:
CREATE TRIGGER staff_delete ON 员工 FOR DELETE
AS SELECT COUNT(*)
FROM 部门,工资,deleted
WHERE 部门.部门人数=deleted.部门人数 AND 工资.工号=deleted.工号 GO
(4)员工内部调动
为员工表设计一个名为staff_update的UPDATE触发器,当系统对员工表进行UPDATE操作后,将会自动触发它。该触发器将相应记录的部门人数、部门名称、工资更新。
下面是client_update触发器的定义代码; CREATE TRIGGER staff_update ON 员工 FOR UPDATE
AS SELECT COUNT(*)
FROM updated,部门
WHERE 部门.部门名称=updated.部门名称 GO
(六)索引
为提高检索性能,为表创建符合索引,其索引项为工号、姓名。
CREATE INDEX 工号_姓名_ind ON 员工(工号,姓名) GO
11
(七)运行和维护 1. 关系图的建立
使用SQL Server 2000的企业管理器创建工资管理系统关系图
工资管理系统的关系图
2.简单查询
1) 员工基本信息情况 代码如下:
select * from 员工;
12
2)员工考勤情况; 代码如下:
select 出勤天数,工号 from 工资;
3)员工每个工种基本工资的设定。
代码如下:
select 工种,岗位工资,职务等级 from 工资,员工
where 工资.工号=员工.工号;
13
4)加班津贴管理,根据加班时间和类型给予不同的加班津贴; 代码如下:
select 加班工时,加班天数,加班类别,加班工资 from 工资
WHERE 加班工资>0
5)按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资; 代码如下:
select 工种,职务等级,岗位工资,出勤天数,实发工资 from 员工,工资
WHERE 员工.工号=工资.工号
;
14
6)员工津贴信息情况,反映员工的加班时间,加班类别、加班天数、津贴情况等; 代码如下:
select 员工.工号,员工.姓名,加班工时,加班天数,加班类别,加班工资 from 工资,员工
WHERE 员工.工号=工资.工号;
3.复杂查询
1)员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12; 代码如下:
Select 姓名,avg(应发工资+岗位补贴+加班工资) from 工资,员工
where 工资.工号=员工.工号 group by 姓名
15
工资管理系统设计报告



