员工管理系统数据库

员工管理系统数据库(sql server)

2009-12-27 16:49

员工管理系统数据库(sql server)

数据库设置:工资管理系统

帐户设置:三个用户 管理员,部门经理(查询本部门员工的信息), 员工(权限只能查询本人)

创建数据库

设置权限

--------------------------------------------------------------------------------

--------------------------------------------------------------------

1,员工表(员工编号(PK)(FK),姓名,出生日期,身份证号,加入公司日期,登录名,密码,

电话, 电子邮件,部门编号(FK),员工级别,拥有假期时间, 备注)

2, 部门表 (部门名称, 部门编号(PK)(自动增量), 部门经理编号(员工编号), 部门描述)

3,工资表(工资编号(PK),员工编号,基本工资,应发工资, 缺勤早退扣除,津贴,,奖金,

住房公积金,养老费,是否为单位住房, 水电费,工作日期,当前日期, 薪资发放当前日期)

4,考勤表(考勤编号(PK),员工编号,到达时间,记录者编号(员工编号) ,考勤类型,日期)

5,请假表(请假编号(PK), 员工编号,请假原因,提交时间,请假开始时间,请假结束时间,

审核者编号,拒绝申请的理由,申请状态)

6,假期表(假期编号(PK),假期具体日期,假期名称,是否为法定假期)

各表PK 为自动增量, 聚集索引

表之间的关系

员工表(部门编号)--部门表(部门编号)

员工表(员工编号)--工资表(员工编号)

员工表(员工编号)--考勤表(员工编号)

员工表(员工编号)--请假表(员工编号)

表之中的约束

1, 员工表(check密码为6位以上,check 登录名长度大于1,unique 登录名唯一)

2, 工资表(基本工资>600,是否为工资住房="是"or" 否" ,应发工资=基本工资+津贴+奖金-缺勤

早退扣除-住房公积金-养老费-水电费)

3, 考勤表(记录者编号员工编号 and 考勤类型 =“缺勤”or “迟到”or “早退”)

4, 请假表(员工编号审核者编号 and 申请状态 =“已提交”、“已取消”、“已批准”、“已否

决”and 开始时间

--------------------------------------------------------------------------------

----------------------------------------------------------------------

视图

1,员工基本信息 基表:员工表-(左外联接)-部门表 得到了员工的详细信息,其中包括员

工的基本信息、员工的部门信息

2, 考勤信息 基表:考勤表--(内联接)--员工表 得到员工的姓名、员工所属部门编号,

考勤情况

3, 请假信息 基表:请假表--(内联接)--员工表 得到员工的请假申请信息, 申请请假

状态和请假批准人姓名

4,工资信息 基表:员工表-(左外联接)-部门表-(内联接)-工资表 得到员工的详细工资

信息

5, 基本工资 基表:员工表--(内联接)--工资表 得到员工的基本工资

6, 变动工资 基表:员工表--(内联接)--工资表 得到员工基本工资的变动增加信息 7,假期信息 基表:假期表 得到假期信息

------------------------------------------------------------------------------------------------------------------------------------------------------- 存储过程

1,增加员工 基表:员工表 插入员工表一条记录

2, 删除员工 基表:员工表 删除员工表一条记录 根据员工编号

3,更新员工信息 基表:员工表 更改员工的基本信息 据员工登录名, 密码

4,得到用户密码 基表:员工表 input用户名, 员工编号output 用户密码

5,更改密码 基表:员工表 据 员工编号, 登录名, 原始密码 用户表的密码 6, 删除部门全部员工 基表:员工表

7, 增加部门 基表:部门表

8,请假申请 基表:请假表 员工插入请假表一条记录

9, 更新员工请假状态 基表:请假表 经理或管理员更改请假表中的申请请假状态, 或和拒绝申请的理由

10, 删除请假记录 基表:请假表 删除请假表一条记录 据员工编号和提交时间 11, 查看员工基本工资 基表:工资表--员工表 据登陆名和密码 查出姓名, 基本工资 12, 更改员工基本工资 基表:工资表--员工表 更改员工的基本工资

13, 查询员工历史工资信息 基表:员工表--工资表 input员工编号 output得到员工工资具体信息

14, 更改员工津贴 基表:员工表--工资表 input员工编号 output更改员工的津贴 15, 查看部门总发放工资 基表:工资表, 员工表, 部门表 据部门编号

--------------------------------------------------------------------------------------------------------------------------

用户自定义函数

1, 返回员工工资编号 通过员工编号

2, 返回员工请假编号 通过员工编号

3, 返回员工所有请假记录 通过请假编号

4, 返回部门成员信息 通过部门名称

---------------------------------------------------------------------------------------------------------------------------

触发器

1,每次只能删一个员工 定义在在员工表上 否则给出出错信息

2, 更改员工拥有假期 定义在员工表上 当员工请假申请状态是" 否决" 时,之前其拥有假期时间已经被减少,否决完成后应该相应恢复其拥有假期时间

3, 员工申请请假状态为批准时 定义在工资表自动将员工表的缺勤扣除项设为应扣的一半 4, 更新应发工资 定义在工资表 为基本工资-缺勤早退扣除+奖金+津贴-住房公积金-养老费-水电费

----------------------------------------------------------------------------------------------------------------------------

--以下是代码 其中约束和之间的关系没建立

create database SalaryManagement

on

(name='SM_data',

filename='E:\SM.MDF',

SIZE=10MB,

MAXSIZE=50MB,

FILEgrowth=10%)

Log On

(NAME='SM_log',

filename='F:\SM.ndf',

SIZE = 5MB,

MAXSIZE = 10MB,

FILEgrowth = 2MB)

GO

------------------------------------------------创建基

----------------------------------------------------------------

use SalaryManagement

create table dbo.员工表

( 员工编号 int identity(1,1) not null primary key,

姓名 nvarchar(50) NOT NULL,

出生日期 datetime NOT NULL ,

身份证号 nvarchar(18) not null,

加入公司日期 datetime NOT NULL ,

登录名 nvarchar(20) NOT NULL ,

密码 binary(20) not NULL,

电话 nvarchar (50) not null,

电子邮件 nvarchar (50) NOT NULL ,

部门编号 int not NULL,

员工级别 int not NULL,

拥有假期时间 int not NULL,

备注 text null)

go

create table dbo.部门表

(部门编号 int IDENTITY (1, 1) NOT NULL primary key,

部门名称 nchar (10) not NULL,

部门经理编号 int not null,

部门描述 text null)

go

create table dbo.工资表

(工资编号 int IDENTITY (1, 1) NOT NULL primary key,

员工编号 int not null,

基本工资 int not null,

应发工资 int not null,

缺勤早退扣除 int not null,

津贴 int not null, 本表

住房公积金 int not null,

养老费 int not null,

是否为单位住房 bit not null,--0表示否,1表示是

水电费 int not null,--若是否为单位住房为0,则水电费为0

工作日期 datetime NOT NULL,

当前记录日期 datetime NOT NULL,

薪资发放日期 datetime NOT NULl)

go

create table dbo.考勤表

(考勤编号 int identity(1,1) not null primary key,

员工编号 int not null,

到达时间 datetime not null,

记录者编号 int not null,

考勤类型 nvarchar(8) not null,--应为“缺勤”or “迟到”or “早退”

日期 datetime not null)

go

create table dbo.请假表

(请假编号 int identity(1,1) not null primary key,

员工编号 int not null,

请假原因 text not null,

提交时间 datetime not null,

请假开始时间 datetime not null,

请假结束时间 datetime not null,

审核者编号 int null,

拒绝申请的理由 ntext null,

申请状态 nvarchar(6) null )--只能为“已提交”、“已取消”、“已批准”、“已否决”) go

create table dbo.假期表

(假期编号 int identity(1,1) not null primary key,

假期具体日期 datetime not null,

假期名称 nvarchar(20) not null,

是否为法定假期 bit not null)

go

---------------------------------------------------------------创建视---------------------------------------------------

use SalaryManagement

go

create view dbo.员工基本信息

AS

SELECT y.员工编号,y. 姓名, y.电子邮件, y.电话, y.登录名, y.出生日期,

y.部门编号,b. 部门名称,y. 员工级别,y. 拥有假期时间

FROM dbo.员工表 as y left outer join dbo.部门表 b

on y.部门编号=b.部门编号

go 图

create view dbo.考勤信息

as

select k.考勤编号,y. 姓名,k. 日期,k. 考勤类型

from 考勤表 as k inner join 员工表 as y

on k.员工编号=k.员工编号

go

create view dbo.请假信息

as

select q.请假编号,y. 姓名,q. 提交时间,q. 请假原因,q. 申请状态,q. 拒绝申请的理由 from 请假表 as q inner join 员工表 as y

on q.员工编号=y.员工编号

go

create view dbo.工资信息

as

select y.员工编号,b. 部门名称,y. 姓名,g. 基本工资,g. 工资编号,g. 应发工资,g. 缺勤早退扣除,

g.津贴,g. 住房公积金,g. 养老费,g. 水电费,g. 薪资发放日期

from 工资表 as g inner join 员工表 as y

on g.员工编号 = y.员工编号 left outer join 部门表 as b

on y.部门编号 = b.部门编号

go

create view dbo.基本工资

as

select y.姓名,y. 员工编号,g. 基本工资

from 员工表 as y inner join 工资表 as g

on y.员工编号=g.员工编号

go

create view dbo.变动工资

as

select y.姓名,y. 员工编号,g. 工资编号,g. 缺勤早退扣除,g. 津贴,g. 住房公积金,g. 养老费,g. 水电费,g. 薪资发放日期

from 员工表 as y inner join 工资表 as g

on y.员工编号 =g. 员工编号

go

create view dbo.假期信息

as

select 假期编号, 假期具体日期 as 假期日期, 假期名称, 是否为法定假期

from 假期表

go

-------------------------------------------------------创建存储过程---------------------------------------------------------

use SalaryManagement

--利用系统函数@@error来确定每个insert 语句是否发生错误, 如果发生, 事务将会滚.

create procedure dbo.增加员工

(

@姓名 nvarchar(50) ,

@出生日期 datetime ,

@身份证号 nvarchar(18) ,

@加入公司日期 datetime ,

@登录名 nvarchar(20) ,

@密码 binary(20) ,

@电话 nvarchar (50) ,

@电子邮件 nvarchar (50) ,

@部门编号 int ,

@员工级别 int ,

@拥有假期时间 int,

@备注 text = null)

as

begin transaction

insert 员工表(

姓名,

出生日期,

身份证号,

加入公司日期,

登录名,

密码,

电话,

电子邮件,

部门编号,

员工级别,

拥有假期时间,

备注)

values (

@姓名,

@出生日期,

@身份证号,

@加入公司日期,

@登录名,

@密码,

@电话,

@电子邮件,

@部门编号,

@员工级别,

@拥有假期时间,

@备注)

if @@error0

begin

rollback tran

return

end

go

create procedure dbo.删除员工

@员工编号 int

as

delete from 员工表

where 员工编号=@员工编号

go

CREATE PROCEDURE dbo.更改员工信息

( @员工编号 int,

@姓名 nvarchar(50) = null,

@出生日期 datetime = null,

@身份证号 nvarchar(18) = null,

@加入公司日期 datetime = null,

@电话 nvarchar (50) =null,

@电子邮件 nvarchar (50)=null ,

@部门编号 int =null,

@员工级别 int=null ,

@拥有假期时间 int =null,

@备注 text = null)

As

UPDATE 员工表

Set 员工编号=@员工编号,

姓名=@姓名,

出生日期=@出生日期,

身份证号=@身份证号,

电话=@电话,

电子邮件=@电子邮件,

员工级别=@员工级别,

拥有假期时间=@拥有假期时间,

备注=@备注

WHERE 员工编号 = @员工编号

return @@Rowcount

go

CREATE PROCEDURE dbo.得到员工密码

(

@员工编号 int,

@密码 binary(20) output

)

As

SELECT @密码 = 密码

FROM 员工表

WHERE 员工编号=@员工编号

return @@Rowcount

go

Create Procedure dbo.更改密码

(@登录名 as nvarchar(20),

@老密码 as binary(20),

@新密码 as binary(20))

AS

Declare @员工编号 as int

select @员工编号=员工编号

from 员工表

where 登录名=@登录名 and 密码=@老密码

Update 员工表

set 密码=@新密码

where 员工编号=@员工编号

go

create procedure dbo.删除部门全部员工

@部门编号 int

as

delete from 员工表

where 部门编号= @部门编号

go

Create Procedure dbo.增加部门

(@部门名称 nchar(10),

@部门描述 nvarchar(50),

@部门经理编号 int)

AS

insert 部门表(部门名称, 部门描述, 部门经理编号)

values (@部门名称,@部门描述,@部门经理编号)

go

create procedure dbo.请假申请

(

@员工编号 int ,

@请假原因 text ,

@提交时间 datetime,

@请假开始时间 datetime,

@请假结束时间 datetime)

as

insert 请假表(员工编号, 请假原因 ,提交时间, 请假开始时间, 请假结束时间)

values (@员工编号, @请假原因,@提交时间, @请假开始时间,@请假结束时间) go

create procedure dbo.更新员工请假状态

(@员工编号 int,

@审核者编号 int,

@拒绝申请的理由 ntext = null ,

@申请状态 nvarchar(6) )

as

update 请假表

set 审核者编号 = @审核者编号,

拒绝申请的理由=@拒绝申请的理由,

申请状态=@申请状态

where 员工编号=@员工编号

go

create procedure dbo.删除请假记录

( @请假编号 int,

@员工编号 int,

@提交时间 datetime)

as

delete from 请假表

where 员工编号=@员工编号 and @提交时间=提交时间

go

create procedure dbo.查看基本工资

(@登录名 nvarchar,

@密码 binary)

as

--得到员工编号

declare @员工编号 as int

select @员工编号=员工编号

from 员工表

where 登录名=@登录名 and 密码=@密码

--查询员工基本工资

select y.姓名,g. 基本工资

from 员工表 as y inner join 工资表 as g

on y.员工编号=g.员工编号

where g.员工编号= @员工编号

go

create procedure dbo.更改员工基本工资

(@员工编号 int,

@老基本工资 int,

@新基本工资 int)

as

update 工资表

set 基本工资=@新基本工资

where 员工编号=@员工编号

go

create procedure dbo.查询员工历史工资信息

(@员工编号 int,

@开始时间 datetime,

@结束时间 datetime)

AS

select y.姓名, g.工资编号,g. 薪资发放日期 as 时间, g.基本工资,g. 应发工资, g.缺勤早退扣除,g. 津贴,g. 住房公积金,g. 养老费

from 工资表 as g

join 员工表 as y

on g.员工编号=y.员工编号

where y.员工编号=@员工编号

having g.薪资发放日期 >= @开始时间 and g.薪资发放日期

go

create procedure dbo.更改员工津贴

(@员工编号 int,

@新津贴 int)

as

update 工资表

set 津贴= @新津贴

where 员工编号=@员工编号

go

create procedure dbo.查看部门总发放工资

@部门编号 int

as

select b.部门编号,b. 部门名称,sum(g.应发工资) as 总发放工资

from 部门表 as b inner join 员工表 as y

on b.部门编号=y.部门编号

inner join 工资表 as g

on y.员工编号=g.员工编号

go

-----------------------------------------------------用户自定义----------------------------------------------------------

--1, 返回员工工资编号 通过员工编号

CREATE FUNCTION dbo.返回员工工资编号 (@员工编号 int)

RETURNS int

AS 函数

begin

Declare @工资编号 int

SELECT @工资编号= 工资编号

From 工资表

where 员工编号=@员工编号

return @工资编号

end

go

--2, 返回员工请假编号 通过员工编号

create function dbo.返回员工请假编号(@员工编号 int) returns int

as

begin

declare @请假编号 int

select @请假编号=请假编号

from 请假表

where 员工编号=@员工编号

return @请假编号

end

go

--3, 返回员工所有请假记录 通过请假编号

create function dbo.返回员工所有的请假记录(@请假编号 int) returns table

as

return

(

select *

from 请假表

where 请假编号=@请假编号

)

go

--4返回部门编号 通过部门名称

Create Function dbo.部门编号

(@部门名称 nchar(10))

RETURNS int

AS

BEGIN

Declare @部门编号 int

select @部门编号=部门编号

from 部门表

where 部门名称=@部门名称

return @部门编号

END

go

--5, 返回部门成员信息 通过部门名称

create function dbo.返回部门成员信息(@部门名称 nchar(10)) returns table

as

return

(

select y.*

from 员工表 as y inner join 部门表 as b

on y.部门编号=b.部门编号

where b.部门名称=@部门名称

group by b.部门编号

)

go

---------------------------------------------------------------------------------------------------------------------- create trigger dbo.每次只能删一个员工 on 员工表

for delete

as

if (select count(*) from deleted)>1

begin

raiserror('一次不能删除超过一个员工!',16,1)

rollback transaction

end

go

--

触发器

员工管理系统数据库(sql server)

2009-12-27 16:49

员工管理系统数据库(sql server)

数据库设置:工资管理系统

帐户设置:三个用户 管理员,部门经理(查询本部门员工的信息), 员工(权限只能查询本人)

创建数据库

设置权限

--------------------------------------------------------------------------------

--------------------------------------------------------------------

1,员工表(员工编号(PK)(FK),姓名,出生日期,身份证号,加入公司日期,登录名,密码,

电话, 电子邮件,部门编号(FK),员工级别,拥有假期时间, 备注)

2, 部门表 (部门名称, 部门编号(PK)(自动增量), 部门经理编号(员工编号), 部门描述)

3,工资表(工资编号(PK),员工编号,基本工资,应发工资, 缺勤早退扣除,津贴,,奖金,

住房公积金,养老费,是否为单位住房, 水电费,工作日期,当前日期, 薪资发放当前日期)

4,考勤表(考勤编号(PK),员工编号,到达时间,记录者编号(员工编号) ,考勤类型,日期)

5,请假表(请假编号(PK), 员工编号,请假原因,提交时间,请假开始时间,请假结束时间,

审核者编号,拒绝申请的理由,申请状态)

6,假期表(假期编号(PK),假期具体日期,假期名称,是否为法定假期)

各表PK 为自动增量, 聚集索引

表之间的关系

员工表(部门编号)--部门表(部门编号)

员工表(员工编号)--工资表(员工编号)

员工表(员工编号)--考勤表(员工编号)

员工表(员工编号)--请假表(员工编号)

表之中的约束

1, 员工表(check密码为6位以上,check 登录名长度大于1,unique 登录名唯一)

2, 工资表(基本工资>600,是否为工资住房="是"or" 否" ,应发工资=基本工资+津贴+奖金-缺勤

早退扣除-住房公积金-养老费-水电费)

3, 考勤表(记录者编号员工编号 and 考勤类型 =“缺勤”or “迟到”or “早退”)

4, 请假表(员工编号审核者编号 and 申请状态 =“已提交”、“已取消”、“已批准”、“已否

决”and 开始时间

--------------------------------------------------------------------------------

----------------------------------------------------------------------

视图

1,员工基本信息 基表:员工表-(左外联接)-部门表 得到了员工的详细信息,其中包括员

工的基本信息、员工的部门信息

2, 考勤信息 基表:考勤表--(内联接)--员工表 得到员工的姓名、员工所属部门编号,

考勤情况

3, 请假信息 基表:请假表--(内联接)--员工表 得到员工的请假申请信息, 申请请假

状态和请假批准人姓名

4,工资信息 基表:员工表-(左外联接)-部门表-(内联接)-工资表 得到员工的详细工资

信息

5, 基本工资 基表:员工表--(内联接)--工资表 得到员工的基本工资

6, 变动工资 基表:员工表--(内联接)--工资表 得到员工基本工资的变动增加信息 7,假期信息 基表:假期表 得到假期信息

------------------------------------------------------------------------------------------------------------------------------------------------------- 存储过程

1,增加员工 基表:员工表 插入员工表一条记录

2, 删除员工 基表:员工表 删除员工表一条记录 根据员工编号

3,更新员工信息 基表:员工表 更改员工的基本信息 据员工登录名, 密码

4,得到用户密码 基表:员工表 input用户名, 员工编号output 用户密码

5,更改密码 基表:员工表 据 员工编号, 登录名, 原始密码 用户表的密码 6, 删除部门全部员工 基表:员工表

7, 增加部门 基表:部门表

8,请假申请 基表:请假表 员工插入请假表一条记录

9, 更新员工请假状态 基表:请假表 经理或管理员更改请假表中的申请请假状态, 或和拒绝申请的理由

10, 删除请假记录 基表:请假表 删除请假表一条记录 据员工编号和提交时间 11, 查看员工基本工资 基表:工资表--员工表 据登陆名和密码 查出姓名, 基本工资 12, 更改员工基本工资 基表:工资表--员工表 更改员工的基本工资

13, 查询员工历史工资信息 基表:员工表--工资表 input员工编号 output得到员工工资具体信息

14, 更改员工津贴 基表:员工表--工资表 input员工编号 output更改员工的津贴 15, 查看部门总发放工资 基表:工资表, 员工表, 部门表 据部门编号

--------------------------------------------------------------------------------------------------------------------------

用户自定义函数

1, 返回员工工资编号 通过员工编号

2, 返回员工请假编号 通过员工编号

3, 返回员工所有请假记录 通过请假编号

4, 返回部门成员信息 通过部门名称

---------------------------------------------------------------------------------------------------------------------------

触发器

1,每次只能删一个员工 定义在在员工表上 否则给出出错信息

2, 更改员工拥有假期 定义在员工表上 当员工请假申请状态是" 否决" 时,之前其拥有假期时间已经被减少,否决完成后应该相应恢复其拥有假期时间

3, 员工申请请假状态为批准时 定义在工资表自动将员工表的缺勤扣除项设为应扣的一半 4, 更新应发工资 定义在工资表 为基本工资-缺勤早退扣除+奖金+津贴-住房公积金-养老费-水电费

----------------------------------------------------------------------------------------------------------------------------

--以下是代码 其中约束和之间的关系没建立

create database SalaryManagement

on

(name='SM_data',

filename='E:\SM.MDF',

SIZE=10MB,

MAXSIZE=50MB,

FILEgrowth=10%)

Log On

(NAME='SM_log',

filename='F:\SM.ndf',

SIZE = 5MB,

MAXSIZE = 10MB,

FILEgrowth = 2MB)

GO

------------------------------------------------创建基

----------------------------------------------------------------

use SalaryManagement

create table dbo.员工表

( 员工编号 int identity(1,1) not null primary key,

姓名 nvarchar(50) NOT NULL,

出生日期 datetime NOT NULL ,

身份证号 nvarchar(18) not null,

加入公司日期 datetime NOT NULL ,

登录名 nvarchar(20) NOT NULL ,

密码 binary(20) not NULL,

电话 nvarchar (50) not null,

电子邮件 nvarchar (50) NOT NULL ,

部门编号 int not NULL,

员工级别 int not NULL,

拥有假期时间 int not NULL,

备注 text null)

go

create table dbo.部门表

(部门编号 int IDENTITY (1, 1) NOT NULL primary key,

部门名称 nchar (10) not NULL,

部门经理编号 int not null,

部门描述 text null)

go

create table dbo.工资表

(工资编号 int IDENTITY (1, 1) NOT NULL primary key,

员工编号 int not null,

基本工资 int not null,

应发工资 int not null,

缺勤早退扣除 int not null,

津贴 int not null, 本表

住房公积金 int not null,

养老费 int not null,

是否为单位住房 bit not null,--0表示否,1表示是

水电费 int not null,--若是否为单位住房为0,则水电费为0

工作日期 datetime NOT NULL,

当前记录日期 datetime NOT NULL,

薪资发放日期 datetime NOT NULl)

go

create table dbo.考勤表

(考勤编号 int identity(1,1) not null primary key,

员工编号 int not null,

到达时间 datetime not null,

记录者编号 int not null,

考勤类型 nvarchar(8) not null,--应为“缺勤”or “迟到”or “早退”

日期 datetime not null)

go

create table dbo.请假表

(请假编号 int identity(1,1) not null primary key,

员工编号 int not null,

请假原因 text not null,

提交时间 datetime not null,

请假开始时间 datetime not null,

请假结束时间 datetime not null,

审核者编号 int null,

拒绝申请的理由 ntext null,

申请状态 nvarchar(6) null )--只能为“已提交”、“已取消”、“已批准”、“已否决”) go

create table dbo.假期表

(假期编号 int identity(1,1) not null primary key,

假期具体日期 datetime not null,

假期名称 nvarchar(20) not null,

是否为法定假期 bit not null)

go

---------------------------------------------------------------创建视---------------------------------------------------

use SalaryManagement

go

create view dbo.员工基本信息

AS

SELECT y.员工编号,y. 姓名, y.电子邮件, y.电话, y.登录名, y.出生日期,

y.部门编号,b. 部门名称,y. 员工级别,y. 拥有假期时间

FROM dbo.员工表 as y left outer join dbo.部门表 b

on y.部门编号=b.部门编号

go 图

create view dbo.考勤信息

as

select k.考勤编号,y. 姓名,k. 日期,k. 考勤类型

from 考勤表 as k inner join 员工表 as y

on k.员工编号=k.员工编号

go

create view dbo.请假信息

as

select q.请假编号,y. 姓名,q. 提交时间,q. 请假原因,q. 申请状态,q. 拒绝申请的理由 from 请假表 as q inner join 员工表 as y

on q.员工编号=y.员工编号

go

create view dbo.工资信息

as

select y.员工编号,b. 部门名称,y. 姓名,g. 基本工资,g. 工资编号,g. 应发工资,g. 缺勤早退扣除,

g.津贴,g. 住房公积金,g. 养老费,g. 水电费,g. 薪资发放日期

from 工资表 as g inner join 员工表 as y

on g.员工编号 = y.员工编号 left outer join 部门表 as b

on y.部门编号 = b.部门编号

go

create view dbo.基本工资

as

select y.姓名,y. 员工编号,g. 基本工资

from 员工表 as y inner join 工资表 as g

on y.员工编号=g.员工编号

go

create view dbo.变动工资

as

select y.姓名,y. 员工编号,g. 工资编号,g. 缺勤早退扣除,g. 津贴,g. 住房公积金,g. 养老费,g. 水电费,g. 薪资发放日期

from 员工表 as y inner join 工资表 as g

on y.员工编号 =g. 员工编号

go

create view dbo.假期信息

as

select 假期编号, 假期具体日期 as 假期日期, 假期名称, 是否为法定假期

from 假期表

go

-------------------------------------------------------创建存储过程---------------------------------------------------------

use SalaryManagement

--利用系统函数@@error来确定每个insert 语句是否发生错误, 如果发生, 事务将会滚.

create procedure dbo.增加员工

(

@姓名 nvarchar(50) ,

@出生日期 datetime ,

@身份证号 nvarchar(18) ,

@加入公司日期 datetime ,

@登录名 nvarchar(20) ,

@密码 binary(20) ,

@电话 nvarchar (50) ,

@电子邮件 nvarchar (50) ,

@部门编号 int ,

@员工级别 int ,

@拥有假期时间 int,

@备注 text = null)

as

begin transaction

insert 员工表(

姓名,

出生日期,

身份证号,

加入公司日期,

登录名,

密码,

电话,

电子邮件,

部门编号,

员工级别,

拥有假期时间,

备注)

values (

@姓名,

@出生日期,

@身份证号,

@加入公司日期,

@登录名,

@密码,

@电话,

@电子邮件,

@部门编号,

@员工级别,

@拥有假期时间,

@备注)

if @@error0

begin

rollback tran

return

end

go

create procedure dbo.删除员工

@员工编号 int

as

delete from 员工表

where 员工编号=@员工编号

go

CREATE PROCEDURE dbo.更改员工信息

( @员工编号 int,

@姓名 nvarchar(50) = null,

@出生日期 datetime = null,

@身份证号 nvarchar(18) = null,

@加入公司日期 datetime = null,

@电话 nvarchar (50) =null,

@电子邮件 nvarchar (50)=null ,

@部门编号 int =null,

@员工级别 int=null ,

@拥有假期时间 int =null,

@备注 text = null)

As

UPDATE 员工表

Set 员工编号=@员工编号,

姓名=@姓名,

出生日期=@出生日期,

身份证号=@身份证号,

电话=@电话,

电子邮件=@电子邮件,

员工级别=@员工级别,

拥有假期时间=@拥有假期时间,

备注=@备注

WHERE 员工编号 = @员工编号

return @@Rowcount

go

CREATE PROCEDURE dbo.得到员工密码

(

@员工编号 int,

@密码 binary(20) output

)

As

SELECT @密码 = 密码

FROM 员工表

WHERE 员工编号=@员工编号

return @@Rowcount

go

Create Procedure dbo.更改密码

(@登录名 as nvarchar(20),

@老密码 as binary(20),

@新密码 as binary(20))

AS

Declare @员工编号 as int

select @员工编号=员工编号

from 员工表

where 登录名=@登录名 and 密码=@老密码

Update 员工表

set 密码=@新密码

where 员工编号=@员工编号

go

create procedure dbo.删除部门全部员工

@部门编号 int

as

delete from 员工表

where 部门编号= @部门编号

go

Create Procedure dbo.增加部门

(@部门名称 nchar(10),

@部门描述 nvarchar(50),

@部门经理编号 int)

AS

insert 部门表(部门名称, 部门描述, 部门经理编号)

values (@部门名称,@部门描述,@部门经理编号)

go

create procedure dbo.请假申请

(

@员工编号 int ,

@请假原因 text ,

@提交时间 datetime,

@请假开始时间 datetime,

@请假结束时间 datetime)

as

insert 请假表(员工编号, 请假原因 ,提交时间, 请假开始时间, 请假结束时间)

values (@员工编号, @请假原因,@提交时间, @请假开始时间,@请假结束时间) go

create procedure dbo.更新员工请假状态

(@员工编号 int,

@审核者编号 int,

@拒绝申请的理由 ntext = null ,

@申请状态 nvarchar(6) )

as

update 请假表

set 审核者编号 = @审核者编号,

拒绝申请的理由=@拒绝申请的理由,

申请状态=@申请状态

where 员工编号=@员工编号

go

create procedure dbo.删除请假记录

( @请假编号 int,

@员工编号 int,

@提交时间 datetime)

as

delete from 请假表

where 员工编号=@员工编号 and @提交时间=提交时间

go

create procedure dbo.查看基本工资

(@登录名 nvarchar,

@密码 binary)

as

--得到员工编号

declare @员工编号 as int

select @员工编号=员工编号

from 员工表

where 登录名=@登录名 and 密码=@密码

--查询员工基本工资

select y.姓名,g. 基本工资

from 员工表 as y inner join 工资表 as g

on y.员工编号=g.员工编号

where g.员工编号= @员工编号

go

create procedure dbo.更改员工基本工资

(@员工编号 int,

@老基本工资 int,

@新基本工资 int)

as

update 工资表

set 基本工资=@新基本工资

where 员工编号=@员工编号

go

create procedure dbo.查询员工历史工资信息

(@员工编号 int,

@开始时间 datetime,

@结束时间 datetime)

AS

select y.姓名, g.工资编号,g. 薪资发放日期 as 时间, g.基本工资,g. 应发工资, g.缺勤早退扣除,g. 津贴,g. 住房公积金,g. 养老费

from 工资表 as g

join 员工表 as y

on g.员工编号=y.员工编号

where y.员工编号=@员工编号

having g.薪资发放日期 >= @开始时间 and g.薪资发放日期

go

create procedure dbo.更改员工津贴

(@员工编号 int,

@新津贴 int)

as

update 工资表

set 津贴= @新津贴

where 员工编号=@员工编号

go

create procedure dbo.查看部门总发放工资

@部门编号 int

as

select b.部门编号,b. 部门名称,sum(g.应发工资) as 总发放工资

from 部门表 as b inner join 员工表 as y

on b.部门编号=y.部门编号

inner join 工资表 as g

on y.员工编号=g.员工编号

go

-----------------------------------------------------用户自定义----------------------------------------------------------

--1, 返回员工工资编号 通过员工编号

CREATE FUNCTION dbo.返回员工工资编号 (@员工编号 int)

RETURNS int

AS 函数

begin

Declare @工资编号 int

SELECT @工资编号= 工资编号

From 工资表

where 员工编号=@员工编号

return @工资编号

end

go

--2, 返回员工请假编号 通过员工编号

create function dbo.返回员工请假编号(@员工编号 int) returns int

as

begin

declare @请假编号 int

select @请假编号=请假编号

from 请假表

where 员工编号=@员工编号

return @请假编号

end

go

--3, 返回员工所有请假记录 通过请假编号

create function dbo.返回员工所有的请假记录(@请假编号 int) returns table

as

return

(

select *

from 请假表

where 请假编号=@请假编号

)

go

--4返回部门编号 通过部门名称

Create Function dbo.部门编号

(@部门名称 nchar(10))

RETURNS int

AS

BEGIN

Declare @部门编号 int

select @部门编号=部门编号

from 部门表

where 部门名称=@部门名称

return @部门编号

END

go

--5, 返回部门成员信息 通过部门名称

create function dbo.返回部门成员信息(@部门名称 nchar(10)) returns table

as

return

(

select y.*

from 员工表 as y inner join 部门表 as b

on y.部门编号=b.部门编号

where b.部门名称=@部门名称

group by b.部门编号

)

go

---------------------------------------------------------------------------------------------------------------------- create trigger dbo.每次只能删一个员工 on 员工表

for delete

as

if (select count(*) from deleted)>1

begin

raiserror('一次不能删除超过一个员工!',16,1)

rollback transaction

end

go

--

触发器


相关内容

  • 人事信息管理系统后台数据库设计
  • <数据库管理系统> 课程设计报告 题 目: 人事信息管理系统的后台数据库设计 院 (系): 信息科学与工程学院 专业班级: 计算机科学与技术****班 学生姓名: ****** 学 号: *********** 指导教师: 陈 颉 20 13 年 1 月 7 日至20 13 年 1 月 ...

  • 软件课程设计-员工信息管理系统
  • 枣 庄 学 院 信息科学与工程学院课程设计任务书 题 目: 学 生1: 学 生2: 学 生3: 学 生4: 专 业: 课 程: 指导教师: 称: 完成时间: 2013年 5 月----2013 年 6月 枣庄学院信息科学与工程学院制 2013年6月30日 课程设计任务书及成绩评定 目 录 1 概述. ...

  • 软件项目实训
  • 中小企业人事管理系统 需求说明书 姓名:学号:班级: 栾永胜 11422014 计科112 1.实训目标.................................................................................................. ...

  • 企业员工信息管理系统
  • 数学与计算机学院 实训报告 课 程 名 称: 软件需求分析实践 课 程 代 码: 6014399 题 目: 企业员工信息管理系统 年级/专业/班: 2011级软件工程3班 学 生 姓 名: 学 号: 开 始 时 间: 2012 年 11 月 14 日 完 成 时 间: 2013 年 01 月 02 ...

  • 数据库设计-------小型超市管理系统
  • 数据库设计-------小型超市管理系统 班 级:06网络技术3班 姓 名:XX 指导老师:XXX 摘 要 小型超市管理系统在现代社会中的应用十分广泛,是一个典型的信息管理系统(MIS).本课程设计采用了结构化和面向对象两种程序设计方法,从页面展示到后台数据库设计都具有一定的可扩展性.本系统在Win ...

  • 员工培训管理系统
  • 员工培训管理系统 [摘要]随着人类社会的发展,社会不断的在进步,对知识的渴望越来越大,人类已经逐步进入信息化社会.信息增长的速度越来越快,人们希望利用先进的管理理论方法和手段来处理越来越多的信息,员工培训也是其中一组成部分,想以提高工作管理水平.因此,学习与再学习始终伴随着我们,其中有关的培训机构有 ...

  • 浩顺指纹机
  • 说 明 欢迎使用<考勤人事系统 V2.0>,本说明书适用于55系列射频卡考勤机及V/C和Q7系列指纹考勤机,在使用考勤软件前请仔细阅读此说明书,有不明之处请与当地的分公司或经销商联系. 目录 1 系统简介┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉4 2 系统组成┉┉┉┉┉┉┉┉┉┉┉┉┉ ...

  • 员工工资管理系统
  • 湖南文理学院 数据库课程设计报告 设计题目: 学生姓名: 系 别: 专 业: 班 级: 学 号: 指导教师: 指导教师评阅意见: 目 录 1.开发背景 .................................................................. 3 2.功能描 ...

  • 人力资源能力素质模型的概念(DOC33页)
  • 某公司能力素质模型 应用手册 目录 第一章 第一节 第二节 第二章 第二节 第二节 第三节 第四节 第五节 第六节 第七节 第八节能力素质模型概述 能力素质模型的概念 1.1 什么是能力素质 1.2 能力素质的分类 1.3 什么是能力素质模型 能力素质模型与人力资源管理整体框架 2.1 人力资源管理 ...

  • 信息学院毕业论文范文
  • 山 东 商 业 职 业 技 术 学 院 毕业设计(论文) 题目 职工工资管理系统 姓 名 常佳 专 业 计算机应用与维护 班 级 06计二班 指导老师 刘允涛 二零零八年9月7日 毕业设计(论文)写作指导须知 一. 毕业设计(论文)是教学过程中一个十分重要的环节,是学生 运用所学知识正确分析和解决实 ...