⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 学院职工.txt

📁 这是个学院人事管理系统的原代码
💻 TXT
字号:
create database 学院人事管理信息系统
on 
(name=main1,
 filename='e:\mssql\data\orderdat.mdf',
 size=20,maxsize=80,
 filegrowth=5
 
)
log on
(name=main2,
filename='e:\mssql\log\orderlog.ldf',
size=10 MB,
maxsize=30 MB,
filegrowth=5MB
)


create table 学院职工基本信息
(职工编号 char(8) primary key ,
姓名 char(20),性别 char(2), 年龄 int , 
籍贯 char(50) ,毕业院校 char(20) , 学历 char(10),  
职务 char(20)  , 部门 char(10) ,  基本工资 int ,
参加工作时间 datetime , 离职时间 datetime )

create table 学院职工工资信息 
(工资编号 char(8) primary key, 职工编号 char(8), 姓名 char(20), 
基本工资 int, 奖金 int, 罚金 int, 其他金额 int ,工资发放日期 datetime)

create table 学院各部门基本信息
(部门编号 char(8) ,部门 char(10) primary key ,
负责人  char(20),职工编号 char(8) ,联系电话 char(15))

create table 职工奖惩记录
(职工编号 char(8) primary key , 姓名 char(20), 奖励等级 char(20), 奖励原因 char(100),
 惩罚等级 char(20) ,惩罚原因 char(100),  奖金 int ,罚金 int )

create table 职工考勤记录
(职工编号 char(8) primary key , 姓名 char(20), 累计加班时间 int,迟到次数  int,早退次数 int, 请假次数 int )

create table 职工升降职信息
(职工编号 char(8) primary key ,姓名 char(20) ,原职务 char(20), 现任职务 char(20), 调动时间 datetime)

create table 职工调动或离职信息
(职工编号 char(8)  primary key ,姓名 char(20) , 
原部门 char(10) ,现部门或离职 char(10),调动或离职时间 datetime )


/*创建索引*/
create  unique index 职工
on 学院职工基本信息 (职工编号) 

create  unique index 工资
on 学院职工工资信息 (职工编号) 

create  unique index 部门
on 学院各部门基本信息 (部门编号) 


/*创建触发器*/
create trigger gongzi on 学院职工工资信息
for update
as 
if exists (select 工资发放日期 from 工资信息 where 工资发放日期  is not null)
begin
declare @工资编号 char(8) ,@职工编号 char(8), @姓名 char(20), @基本工资 int, 
@奖金 int, @罚金 int, @其他金额 int ,@工资发放日期 datetime
set @工资编号 = (select 工资编号 from inserted)
set @职工编号 = (select 职工编号 from inserted)
set @姓名 = (select 姓名 from inserted)
set @基本工资 = (select 基本工资 from inserted)
set @奖金 = (select 奖金 from inserted)
set @罚金 = (select 罚金 from inserted)
set @其他金额 = (select 其他金额 from inserted)
set @工资发放日期 = (select 工资发放日期 from inserted)
if exists (select 工资发放日期 from 工资信息 where 工资发放日期  is not null)
update 工资信息
SET 奖金 = 0, 罚金 = 0 ,工资发放日期 = null
WHERE 职工编号 = (select  职工编号 from inserted)
insert into 学院职工工资信息
values (@工资编号,@职工编号 , @姓名 , @基本工资 , @奖金 , @罚金 , @其他金额  ,@工资发放日期 )
end

create trigger jiangcheng on 职工奖惩记录
for update
as 
if update (罚金)
update 学院职工工资信息
SET 罚金 = (select  罚金 from inserted)
WHERE 职工编号 = (select  职工编号 from inserted)
if update (奖金)
update 学院职工工资信息
SET 奖金= (select  奖金 from inserted)
WHERE 职工编号 = (select  职工编号 from inserted)


create trigger kaoqin on 职工考勤记录
for update
as 
if update (迟到次数)
update 奖惩信息
SET 罚金= 罚金 + 10
WHERE 职工编号 = (select  职工编号 from inserted)
if update (早退次数)
update 奖惩信息
SET 罚金= 罚金 + 10
WHERE 职工编号 = (select  职工编号 from inserted)
if update (请假次数)
update 奖惩信息
SET 罚金= 罚金 + 10
WHERE 职工编号 = (select  职工编号 from inserted)
if update (累计加班时间)
update 奖惩信息
SET 奖金 = 奖金 + 50
WHERE 职工编号 = (select  职工编号 from inserted)


CREATE TRIGGER updown ON 职工升降职信息
FOR INSERT
AS
BEGIN TRANSACTION
IF NOT EXISTS (
SELECT 职工编号
FROM 职工信息
WHERE 职工编号 IN (SELECT 职工编号  FROM INSERTED))
BEGIN
RAISERROR('错误!职工考勤记录中并无此人。',16,1)
ROLLBACK
RETURN
END


CREATE TRIGGER move ON 职工调动或离职信息
FOR INSERT
AS
BEGIN TRANSACTION

IF NOT EXISTS (
SELECT 职工编号
FROM 职工信息
WHERE 职工编号 IN (SELECT 职工编号  FROM INSERTED)
)
BEGIN
RAISERROR('错误!职工考勤记录中并无此人。',16,1)
ROLLBACK
RETURN
END


/*创建视图*/
create view 工资视图 as
select * 
from 学院职工工资信息
/*执行视图*/
select *
from 工资视图

/*存储过程*/
create proc 按部门查询工资
(  @部门查询 char(10))
as
if @部门查询 is not null
begin
select * from  工资视图
where 职工编号 in (select 职工编号 from 学院职工基本信息 where 部门 = @部门查询)
end
return 0


create proc 按编号查询工资
(  @编号查询 char(8))
as
if @编号查询 is not null
begin
select * from  工资视图
where 职工编号 = @编号查询 
end
return 0

create  proc 按编号查询职工信息
(@职工编号 char(8))
as 
begin
select * from 学院职工基本信息 where 职工编号 = @职工编号 
end
return 0

create  proc 按部门查询职工信息
(@部门 char(10))
as 
begin
select * from 学院职工基本信息 where 部门 = @部门
end
return 0


create  proc 添加职工
(@职工编号 char(8)  ,@姓名 char(20),@性别 char(2), @年龄 int , 
@籍贯 char(50) ,@毕业院校 char(20) , @学历 char(10),  
 @职务 char(20)  , @部门 char(10) ,  @基本工资 int ,@参加工作时间 datetime , 
@离职时间 datetime)
as 
begin
insert into 学院职工基本信息 values ( @职工编号   ,@姓名 ,@性别 , @年龄  , @籍贯  ,@毕业院校  , @学历 ,  
 @职务   , @部门  ,  @基本工资  ,@参加工作时间  , @离职时间 )
end
return 0

create  proc 修改职工信息
(@职工编号 char(8)  ,@姓名 char(20),@性别 char(2), @年龄 int , 
@籍贯 char(50) ,@毕业院校 char(20) , @学历 char(10),  
 @职务 char(20)  , @部门 char(10) ,  @基本工资 int ,@参加工作时间 datetime , 
@离职时间 datetime)
as 
update  学院职工基本信息 set 职工编号 = @职工编号 ,姓名=@姓名 ,性别 = @性别 , 年龄 = @年龄  ,籍贯 =  @籍贯  ,毕业院校 = @毕业院校  ,学历 = @学历 ,  
 职务 = @职务   ,部门 =  @部门  ,  基本工资 = @基本工资  ,参加工作时间 = @参加工作时间  , 离职时间 = @离职时间 
where 职工编号 = @职工编号
return 0

create  proc 修改个人工资
(@职工编号 char(8)  , @基本工资 int )
as 
update 学院职工基本信息 set   基本工资 = @基本工资   
where 职工编号 = @职工编号
return 0

create  proc 添加升降职
(@职工编号 char(8)  ,@姓名 char(20),@原职务 char(20) ,@现任职务  char(20), @调动时间 datetime)
as 
begin
insert into 职工升降职信息 values(@职工编号  ,@姓名 ,@原职务 , @现任职务  , @调动时间 )
end
return 0

create  proc 添加调动或离职
(@职工编号 char(8)  ,@姓名 char(20),@原部门 char(10) ,@现部门或离职  char(10), @调动或离职时间 datetime)
as 
begin
insert into 职工调动或离职信息 values ( @职工编号,@姓名 ,@原部门 ,@现部门或离职 ,@调动或离职时间 )
end
return 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -