当前位置: 首页 > article >正文

实验室设备管理系统SQL代码

实验室设备管理系统SQL代码

课程设计时的SQL代码,不是很完整,仅供参考。
完整的实验室设备管理系统设计代码包括界面设计(使用的是C#)上传到了我的资源中点此跳转修改数据源xml配置点击跳转
以 C#+VS2019 作为开发环境, 采用 SqlServer 作为后台数据库管理系统, 开发了一款基于 C / S 结构的实验室设备管理系统。该系统分为管理员功能模块、 普通用户功能模块和设备维护员三个部分。
管理员模块实现用户信息管理、设备类别、信息、 购买、维修、报废管理等功能;普通用户模块实现借用申请、申请结果查看、借用历史查询等功能。
***界面截图 ***
在这里插入图片描述
在这里插入图片描述

create database 实验室设备管理系统
on
primary
(name = '实验室设备管理_data',filename = 'E:\SqlServerData\实验室设备管理系统\实验室设备管理_data.mdf',size = 5MB,maxsize = 100MB,filegrowth = 5%
)
log on
(name = '实验室设备管理_log',filename = 'E:\SqlServerData\实验室设备管理系统\实验室设备管理_log.ldf',size = 5MB,maxsize = 100MB,filegrowth = 5%
)use 实验室设备管理系统create table 用户
(用户ID char(8) primary key,用户名 nvarchar(10) not null,用户密码 varchar(16) not null,用户权限 int not null check (用户权限 <=3 and 用户权限 >= 1)
)alter table 用户 drop 用户权限
alter table 用户 add 用户权限 int not null check (用户权限 <=3 and 用户权限 >= 0)
alter table 用户 add 电话 char(11) unique not nullcreate table 设备信息
(设备编号 char(8) primary key,设备名称 nvarchar(20) unique not null,型号 nvarchar(10),类别 nvarchar(5) default '计算机' check(类别 in('计算机','生物','物理','化学')), 规格 nvarchar(10),总数量 int check(总数量>=0),当前剩余数量 int check(当前剩余数量 >=0 ),生产厂家 nvarchar(10) not null
)
drop table 购买设备信息
create table 购买设备信息
(购买ID int primary key identity(1,1),设备编号 char(8) ,实验室编号 char(8),设备名称 nvarchar(20) unique not null,型号 nvarchar(10),类别 nvarchar(5) default '计算机' check(类别 in('计算机','生物','物理','化学')), 购买日期 datetime default(getdate()) not null,规格 nvarchar(10),数量 int check(数量>=0),单价 money not null,购买人 nvarchar(10) not null,生产厂家 nvarchar(10) not null,foreign key(设备编号) references 设备信息(设备编号),foreign key(实验室编号) references 实验室(实验室编号),
)create table 实验室
(实验室编号 char(8) primary key,实验室名称 nvarchar(10) unique not null,实验室地址 nvarchar(10) unique not null)create table 设备详细编号
(设备编号 char(8) ,设备ID   char(8) ,实验室编号 char(8),设备情况 nvarchar(5) default '正常' check(设备情况 in('正常','维修','报废'))primary key (设备编号,设备ID),foreign key (设备编号) references 设备信息(设备编号),foreign key (实验室编号) references 实验室(实验室编号),
)alter  table 设备详细编号 add 设备情况 nvarchar(5) default '正常' check(设备情况 in('正常','维修','报废'))
update 设备详细编号 set 设备情况='正常'drop table 报修 
create table 报修
(报修ID int primary key identity(1,1),设备编号 char(8) ,设备ID   char(8) ,报修原因 nvarchar(30),报修日期 datetime default(getdate()) not null,维修日期 datetime ,维修人员 nvarchar(10),维修费用 money,是否修复 bit default 0,foreign key(设备编号,设备ID) references 设备详细编号(设备编号,设备ID),
)create table 报废
(报废ID int primary key identity(1,1),设备编号 char(8) ,设备ID   char(8) ,报废原因 nvarchar(30),报废日期 datetime default(getdate()) not null,报废人员 nvarchar(10) not null,foreign key(设备编号,设备ID) references 设备详细编号(设备编号,设备ID),
)create trigger 购买设备
on 购买设备信息
instead of insert
as
begin
--设备信息表的插入变量declare @EquipmentID as char(8)declare @LaboratoryID as char(8)declare @EquipmentName as nvarchar(20)declare @Model as nvarchar(10)declare @type as nvarchar(10)declare @guige as nvarchar(10)declare @count as intdeclare @maker as nvarchar(20)
--设备大小号插入变量declare @pre_count as intdeclare @now_count as intselect @EquipmentID=inserted.设备编号,@LaboratoryID=inserted.实验室编号,@EquipmentName=inserted.设备名称,@Model=inserted.型号,@type=inserted.类别,@guige=inserted.规格,@count=inserted.数量,@maker=inserted.生产厂家 from insertedif not exists(select * from 设备信息 where @EquipmentID=设备编号)begininsert into 设备信息(设备编号,设备名称,型号,类别,规格,总数量,当前剩余数量,生产厂家) values(@EquipmentID,@EquipmentName,@Model,@type,@guige,@count,@count,@maker)endelsebeginupdate 设备信息 set 总数量=总数量+@count,当前剩余数量=当前剩余数量+@count where @EquipmentID=设备编号endselect @pre_count=count(*) from 设备详细编号 where @EquipmentID=设备详细编号.设备编号set @now_count=@pre_count+@countset @pre_count=@pre_count+1while @pre_count<=@now_countbegininsert into 设备详细编号(设备编号,设备ID,实验室编号) values(@EquipmentID,@pre_count,@LaboratoryID)set @pre_count = @pre_count+1endinsert into 购买设备信息(设备编号,实验室编号,设备名称,型号,类别,购买日期,规格,数量,单价,购买人,生产厂家) select 设备编号,实验室编号,设备名称,型号,类别,购买日期,规格,数量,单价,购买人,生产厂家 from insertedendalter trigger 报修操作
on 报修
after insert
as
begindeclare @EquipmentID as char(8)declare @EquipmentID2 as char(8)select @EquipmentID=inserted.设备编号,@EquipmentID2=inserted.设备ID from insertedupdate 设备详细编号 set 设备情况='维修' where @EquipmentID=设备编号 and @EquipmentID2=设备IDupdate 设备信息 set 当前剩余数量=当前剩余数量-1 where @EquipmentID=设备编号end--select * from 报修
--select * from 报废
--select * from 设备信息
--select * from 设备详细编号
drop trigger 报废操作
create trigger 报废操作
on 报废
after insert
as
begindeclare @EquipmentID as char(8)declare @EquipmentID2 as char(8)select @EquipmentID=inserted.设备编号,@EquipmentID2=inserted.设备ID from insertedif '正常'=(select 设备情况 from 设备详细编号 where @EquipmentID=设备编号 and @EquipmentID2=设备ID)beginupdate 设备信息 set 当前剩余数量=当前剩余数量-1 where @EquipmentID=设备编号endupdate 设备详细编号 set 设备情况='报废' where @EquipmentID=设备编号 and @EquipmentID2=设备IDendalter trigger 设备借用
on 设备详细编号
after update
as
begindeclare @EquipmentID as char(8)declare @EquipmentState as nvarchar(5)select @EquipmentID=inserted.设备编号,@EquipmentState=inserted.设备情况 from insertedif @EquipmentState='使用中'beginupdate 设备信息 set 当前剩余数量=当前剩余数量-1 where @EquipmentID=设备编号endif @EquipmentState='正常'beginupdate 设备信息 set 当前剩余数量=当前剩余数量+1 where @EquipmentID=设备编号end
endselect * from 设备详细编号  and 设备情况='正常'select s1.设备编号,s1.设备ID,s1.实验室编号,s2.设备名称 from 设备详细编号 as s1 join 设备信息 as s2 on s1.设备编号=s2.设备编号 where s1.用户ID = '20180002'select s1.设备编号,s1.设备ID,s2.设备名称,s2.类别,s2.生产厂家,s1.报修原因,s1.报修日期 from 报修 as s1 join 设备信息 as s2 on s1.设备编号=s2.设备编号
where s1.是否修复=0alter trigger 修理完成
on 报修
after update
as
begindeclare @EquipmentID as char(8)--大号declare @EquipemntNo as char(8)--小号select @EquipmentID=inserted.设备编号,@EquipemntNo=inserted.设备ID from insertedupdate 设备信息 set 当前剩余数量=当前剩余数量+1 where @EquipmentID=设备编号update 设备详细编号 set 设备情况='正常' where @EquipmentID=设备编号 and @EquipemntNo=设备IDendupdate 报修 set 维修日期=GETDATE(),维修人员='',维修费用='',是否修复=1 where 设备编号='' and 设备ID=''select s1.报修ID,s1.设备编号,s1.设备ID,s2.设备名称,s1.报修日期,s1.维修日期,s1.维修费用,s1.报修原因 from 报修 as s1 join 设备信息 as s2 on s1.设备编号=s2.设备编号 where s1.是否修复=1 and 维修人员='赵一'select * from 用户 where 用户权限<>'1'delete  报修
delete  报废
delete  购买设备信息
delete  设备详细编号
delete  设备信息
http://www.lryc.cn/news/2412455.html

相关文章:

  • 《使命召唤》启动失败:该如何修复d3dx9_34.dll错误?
  • d3dcompiler_42.dll系统文件丢失怎么办?
  • Flink——Flink的基础知识
  • 秒懂所有USB接口类型,USB接口大全;Type-A、Type-B、Type-C、miniUSB、microUSB区分
  • GIT使用文档
  • ANR系列之一:ANR显示和日志生成原理讲解
  • 《树莓派实战秘籍》——2.4 技巧24在GPU和Linux用户之间划分内存
  • c/s和b/s的区别与联系
  • P3机器学习笔记--李宏毅
  • release版本是什么意思_史上讲解最详细:版本号命名的前世今生(SpringCloud版本原来是这么回事-值得收藏 - 299...
  • QR码国家标准(图片和表格后续会更新)
  • MOV指令
  • AppbarLayout的简单用法
  • 【ML】结构化数据和非结构化数据的区别以及如何将非结构化数据转换为结构化数据
  • SL400之换轴篇@屏轴门
  • 【数字图像处理第四版课后习题答案】第10章 图像分割(含英文原版)
  • 局域网监控软件大盘点:10大好用的局域网监控软件(2024上半年精选)
  • 堪比端游 欧美十大RPG网页游戏推荐
  • Hibernate深入浅出(九)持久层操作——数据保存批量操作
  • 从零开始学习移动端Web开发
  • 攻防世界 Misc高手进阶区 7分题 challenge_how_many_Vigenère
  • 今天是程序员节!
  • 物联网工程实训博客day-7
  • 什么是 RansomCloud,您如何保护自己?
  • 软件定义汽车研究:40个细分赛道,数百家供应商,软件自主化水平快速提升_etas 云原生
  • 搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)...
  • 基于Python的批量运维管理系统设计与实现(源码+数据库+讲解)
  • 视频网站是怎么建成的--------JustinTV教你如何打造实时视频网站
  • 三.数据库基础-国产数据库-华为GaussDB高斯学习这一篇就够了(详细)
  • C++/CLI 托管C++之字符串封装【5】