




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高校教材管理系统数据结构课程设计数据结构课程设计题目:高校教材管理系统课程设计任务书一、课程设计题目:高校教材管理系统二、课程设计应解决的主要问题:(1)实现出版社、教材类型等的管理(2)实现教材的订购管理(3)实现教材的入库管理(4)实现教材的领用管理(5)创建规则实现教材的书号必须满足意ISBN开头,后跟10个数字的格式,比如:ISBN7302120363(6)创建触发器,实现教材入库和出库时自动修改库存数量 (7)创建存储过程统计各种教材的订购、到货和发放数量;建立数据库相关表之间的参照完整性约束目录1概述 52需求分析 52.1数据的分析 52.2数据处理的分析 62.3安全性分析 62.4完整性分析 83概念结构设计 83.1高校教材系统的数据流图 93.2数据字典 93.3E-R图 104逻辑结构设计 134.1实体间联系的不同情况 134.2将E-R图转换成关系模式 144.3关系模式的分析 144.4数据库关系图 145物理结构设
计 145.1设计存储过程 145.2设计索引 156数据库实施 156.1权限设置 156.2数据输入 166.2.1创建数据库 166.2.2创建数据表并插入数据 176.2.3创建视图 186.2.4数据表的操纵语句 196.3程序设计与调试 196.3.1设计索引 196.3.2数据查询操作 206.3.3使用控制流语句编写程序 226.3.4编写自定义函数及调用 236.3.5编写存储过程及调用 246.3.6编写触发器 256.3.7设计游标及其使用 267结束语 278参考文献 281.概述1.1项目背景在高速发展的当今信息社会,越来越多的工作都已经将计算机引入了其中,并且成为了其中不可或缺的一个重要部分。利用计算机进行各项管理与协调,将能大大的提高工作的效率,减小工作强度;在相同的工作强度情况下,利用计算机进行工作,能比原来的老式工作方式提高数倍乃至数十倍的工作的效率,可以大大的减少各项人力及物资损耗,从而使得能够将多余的人力及投入到更需要的地方去。高校管理当然也不例外,所以教材管理的计算机化已刻不容缓。教材管理对于各个学校而言,都是一项很复杂、烦琐的工作,是高校教务管理中的一个重要环节,由于大学专业设置门类多,各专业每期开设课程的种类多,其业务不仅涉及出版部门,而且要面对全校各系的授课教师,各班级的学生,教材科要管理的入出库教材种类非常多,涉及到的人员广,工作量大,再者是近些年来,我国高等教育规模不断扩大,学校学生人数迅速增加,
使得教材管理工作更加繁重不堪。所以,一套好的高校教材管理软件,不但能够大大降低工作人员的劳动强度,而且还能提高学校的管理效率和教学水平。学校教材管理主要是由教材计划制定、采购、入库、发放、记账、结算等一系列工作所组成,该工作各院校都有专门机构负责该项工作,通常是教材科。由于学校中专业设置门类多,各专业每期开设课程种类多,各个专业需要订购的课本也不一样,在每学期开学的时候教材的发放便成为了一个繁重的任务。每期教材科管理的入出库教材种类少则几百多则几千种,涉及教材册数少则几千多则几万,涉及人员广,工作量大,再者特别是近年来,我国高等教育规模的不断扩大,学校学生人数迅速增加,使教材管理工作更加繁重不堪。据调查,到目前为止,我国还有许多学校甚至是一些重点院校的教材管理仍为手工管理方式,这种现状不但与现实学校教材管理的业务需求不相适应,并且也与学校信息化建设的发展趋势不相适应,因此,学校教材管理人员目前迫切需要一套方便、高效的计算机化的管理信息系统来代替他们繁琐、低效的传统手工管理方式,并最终实现教材管理的全面自动化。因此,教材管理水平的高低直接影响教学工作的进行、教学质量的提高和合格人才的培养,开发和使用高校教材管理信息系统是改善和提高教材管理水平的一个重要途径。1.2编写目的本课题旨在解决我校和其他高校教材管理工作还是依靠教材管理人员的手工管理的现状,并且在现有基础上考虑了如何完善和解决现有的两层结构的C/S(客户端/服务器)教材系统本身所固有的缺陷,把两层结构中服务器部分和客户端部分的应用单独划分出来,从而满足大型系统的需求。通过本系统不仅可以方便教材管理人员管理教材,还可以方便教务部门和广大师生查询教材和查看教材管理记录,使教材信息管理工作系统化、规范化、自动化,从而达到提高教材管理效率的目的。1.3软件定义人员订书、领书、查询教材资料及其书款情况必须在管理员的设置条件下进行。1.4开发环境本系统使用SQLServer2008Express数据库作为后台的数据管理系统,利用ADO数据库组件连接后台数据库。开发采用的是C#,它是由Microsoft公司开发的Windows程序开发环境,是现在最受欢迎的几种开发工具之一.2.需求分析2.1数据的分析教材管理系统主要提供学生以班级为单位能从学校教材管理中心完成每学期领到所订教材的功能,其中包括班级信息、教材管理员信息、财务室
信息、教师信息、教材信息、出版社信息。此系统可以让教师增加、删除和修改某一学期所定的教材信息,教材管理员可以依据教师提供的应订教材要求和出版社联系订书,还可以让出版社增加、删除和修改预定教材的信息。如果信息无误,财务室根据学生交的教材费给教材管理员拨款,订书成功后,开学初可以将所定教材成功发放给学生所在班级。2.2数据处理的分析系统实现功能描述一一本系统应该实现的功能如下:(1)系统管理模块:首先是对本系统的操作用户设置权限以及用户基本信息的添加、修改、删除其次是设置有系统初始化,能够在系统出现问题或者有大量错误、冗余数据时进行初始化设置,使系统恢复期初始状态;(2) 书费管理局模块:财务科根据学生订书情况和教材费用收缴学生订书费用,并记录相应的数据;(3) 教材出入库模块:教材科根据学生订书数量和教材基本信息想学生发放教材的出库管理和向书商下达供书订单并打印教材报表,便于用户直接查看,实现出版社、教材类型等的管理并实现教材的订购、入库和领用管理;(4) 综合查询模块:根据用户的类型和需求查询教材的库存信息,班级信息以及费用收缴信息,创建规则实现教材的书号必须满足以ISBN开头,后跟10个数字的格式,比如:ISBN7302120363。创建触发器,实现教材入库和出库时自动修改库存数量。创建存储过程统计各种教材的订购、到货和发放数量;建立数据库相关表之间的参照完整性约束;(5) 统计分析模块:录入班级信息闭和教师单位信息并设置打印报表功能供用户查看然后操作员根据订书情况统计分析学生买书的人数比例和学生不购买教材的原因分析,一次给校方提供相应的数据,便于改进学校的教材管理措施,满足学生对教材的需求;(6) 帮助模块:介绍本系统的相关信息和操作指南。2.3安全性分析(1)系统能抵御瑞星网上公布的病毒的攻击而不至于瘫痪。(2)系统能安全的防范对数据库内容不安全的访问和操作。(3)系统能在断电的情况下,依靠UPS电源确保数据库内容的完整性和安全性。(4)数据库服务端应具备系统使用期间2小时备份一次数据库的功能。(5)系统应用验证用户权限方可使用的功能保障。(6)能完全、直观的体现系统功能,用户能方便快捷的执行某种教材管理工作,能适应屏显分辨率的调整,友好、可操作性强。
(7)限于网络配置和C/S结构程序的网络编程实现问题,部分功能可能实现不完美,甚至是暂时无法实现。以下为数据库的用户信息及其权限〜1班级信息班级交费财务管理员修改信息删除信息登记信息领书班级信息操作流程图〜2教材管理员信息教材管理员管理教材删除信息修改信息登记信息发书教材管理员信息操作流程图〜3财务管理员信息财务管理员拨款教材管理员登记信息删除信息修改信息购买教材财务管理员信息操作流程图~4教师信息教师选定教材修改人数删除人数统计人数预订教材教师信息操作流程图~5教材信息教材分类班级删除领取信息修改领取信息登记领取信息被领取教材信息操作流程图〜6出版社信息出版社出版教材整理信息联系购买商分类被订购出版社信息操作流程图2.4完整性分析当向数据库中插入、修改时,系统能够辨别输入的数据是否符合语义,不能的则不能修改成功。概念结构设计从课程设计选题中可以得知,我们设计的高校教材管理系统数据库需具备以下功能:1) 实现出版社、教材类型等的管理;2) 实现教材的订购管理;3) 实现教材的入库管理;4) 实现教材的领用管理;5) 可随时查询教材管理系统中的各种信息;6) 创建规则实现教材的书号必须满足以ISBN开头,后跟10个数字的格式,比如:ISBN7302120363;7) 创建触发器,实现教材入库和出库时自动修改库存数量;8) 创建存储过程统计各种教材的订购、到货和发放数量;建立数据库相关表之间的参照完整性约束。3.1高校教材系统的数据流图数据流程图3.2数据字典数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。是一种用户可以访问的记录数据库和应用程序源数据的目录。数据字典最重要的作用是作为分析阶段的工具。数据字典最重要的用途都是供人查询对不了解的条目的解释,在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明。换句话说,数据流图上所有的成分的定义和解释的文字集合就是数据字典,而且在数据字典中建立的一组严密一致的定义很有助于改进分
析员和用户的通信。数据库数据字典不仅是每个数据库的中心,而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。下面是本系统中的数据字典。名字:用户信息描述:使用该软件的人员信息定义:用户信息二登陆账号+真实名字+登陆密码+班级名字:教材基本信息描述:各种教材的详细信息定义:教材信息二教材编号+教材名称+教材作者+出版社+教材版本号名字:入库信息描述:每一种教材的入库详细信息定义:入库信息二教材编号+教材名称+入库单号+单价+出版社+数量+入库时间名字:订购信息描述:每一种教材订购的详细信息定义:订购信息二订购单号+教材编号+教材名称+数量+单价+供应商+订购日期名字:出库信息描述:每一种教材的出库详细信息定义:出库信息二教材编号+教材名称+数量+单价+出版社+班级名字:管理员信息描述:管理教材的入库和出库的详细信息定义:管理员信息二编号+姓名+性别+电话名字:供应商信息描述:为需求单位提供教材定义:供应商信息二编号+名称+地址+负责人+电话3.3E-R图下面是各实体的ER图:班级:出版社:订购管理:出库管理:学生:入库管理:供应商管理:高校教材管理系统实现各种管理工作,根据使用者学生与供应商、管理员管理、入库管理、出库的管理、印刷社、教材的关系,构化出本系统整体的ER图:逻辑结构设计数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本ER图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。由于目前使用的数据库基本上都是关系数据库,因此首先需要将ER图转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化。在本系统中我们选用的数据库环境是SQLsrver2008。4.1实体型间联系的不同情况(1)一个1:1联系可以转换成一个独立的关系模式,也可以与任意一段对应的关系模式合并。(2)一个1:n联系可以转换成一个独立的关系模式,也可以与n端对应的关系模式合并。
(3) 一个m:n联系可以转换成一个关系模式。(4) 3个或3个以上实体间的一个多元联系可以转换为一个关系模式。(5) 具有相同码的关系模式可以合并。4.2将E-R图转换成关系模式教材(教材编号,教材名称,类型编号,订书单位,出版社名称,出版时间,作者,印张,数量,字数,入库时间)班级(班级编号,班级名称,人数,班长,班长号码,班主任,班主任号码,学院系,学校,入学时间)学生(学号,姓名,学院系,学校,班级)出库(教材编号,教材名称,数量,单价,班级编号,出版社编号,出版时间,出库时间,负责人)入库(教材编号,教材名称,数量,单价,出版社,入库时间,作者,负责人)管理员(管理员编号,管理员名字,性别,电话)供应商(供应商编号,供应商名称,供应商地址,电话,负责人)订购(订单编号,教材编号,教材名称,单价,数量)出版社(出版社编号,出版社名称,电话,负责人,地址)。(横线化的表示是主键)4.3关系模式的分析学生(学号,姓名,学院系,学校,班级),其中,学号为主码,姓名,学院系,学校,班级为非主属性,因为所有非主属性都完全依赖于每个候选码,所有主属性都完全函数依赖于每个不包含它的候选码,但是有属性完全函数依赖于非码的一组属性,所以该关系属于3NF,但不属于BCNF。管理员(管理员编号,管理员名字,性别,电话),其中,管理员编号为主码,管理员名字,性别,电话为非主属性,因为所有非主属性都完全依赖于每个候选码,所有主属性都完全函数依赖于每个不包含它的候选码,没有任何属性完全函数依赖于非码的任何一组属性,所以该关系属于3NF,也属于BCNF。物理结构设计5.1设计存储过程(1)在“教材管理库”数据库创建无参存储过程,查询各种教材的订购数量createprocedurejc_slasselect教材编号,count(数量)as数量slfrom订购groupby教材编号go(2)在“教材管理库"数据库创建带output参数的存储过程,用于计算指定的教材订购的总订购金额,存储过程中使用一个输入参数(教材名称)和一个输出参数(总订购金额)createprocedurepname@jcmcvarchar(20),@counintoutputasselect@coun=单价*数量from订购where教材名称=@jcmcgo(3)在“教材管理库"数据库创建带有参数和
默认值(通配符)的存储过程,从学生表中返回指定的学生(提供姓名)的信息。该存储过程对传递的参数进行模式匹配,如果没有提供参数,则返回所有学生的信/息createprocedurestudent_name@namevarchar(40)='%'asselect*from学生where姓名like@namego5.2设计索引(1)聚合索引和唯一索引创建学生表上按学号升序排的唯一聚合索引idluse教材管理库gocreateuniqueclusteredindexidlon学生(学号)(2)非聚合索引创建学生表上先按学号升序排,学号一样的再按书费降序排的非聚集索引id2use教材管理库gocreateindexid2on学生(学号,书费desc)6.数据库实施6.1权限设置设计登录账户SQLServer,登录名gxjc1,gxjc2及密码createlogingxjclwithpassword='111111',default_database二教材管理库createlogingxjc2withpassword='111111',default_database=教材管理库设计数据库用户系统管理员xtgly,一般用户ybyhcreateuserxtglyforlogingxjc1createuserybyhforlogingxjc2设计架构createschemaschema1authorizationxtglygocreateschemaschema2authorizationybyh设置用户操作权限把"学生"表的全部操作权限授予用户xtgly和ybyhgrantallprivilegeson学生toxtgly,ybyh把对“教材”表的查询权限授予所有用户grantselecton教材topublic把查询“学生"表和修改学生学号的权限授予用户ybyhgrantselect,update(学号)on学生toybyh把对订购表的插入权限授予用户xtgly,允许xtgly再将此权限授予其他用户grantinserton订购toxtglywithgrantoptiongrantinserton订购toybyhwithgrantoption将教材管理库数据库中建表的权限授予ybyhuse教材管理库grantcreatetabletoybyh6.2数据输入6.2.1创建数据库T-SQL语句为:CREATEDATABASE教材管理库ON(NAME二教材管理库,FILENAME='E:\DATA'教材管理库.MDF',SIZE=5,MAXSIZE二unlimited,FILEGROWTH=10%),FILEGROUPFG1(NAME二教材库,FILENAME='E:\DATA'教材管理库.NDF',SIZE=10,MAXSIZE=100,FILEGROWTH=1)LOGON(NAME二教材库LOG1,FILENAME='E:\DATA'教材管理库LOG1.LDF',SIZE=5,MAXSIZE=50,FILEGROWTH=1),(NAME二教材库LOG2,FILENAME='E:\DATA'教材管理库LOG2.LDF',SIZE=5,MAXSIZE=50,FILEGROWTH=1)6.2.2创建数据表并插入数据几个有代表性的数据表的创建T-SQL语句为:USE教材管理库GOcreatetable班级(班级编号intnotnull,班级名称varchar(5)notnull,人数intnull,班长char(10)null,班长电话char(11)null,班主任char(10)null,班主任电话char(11)null,学院系varchar(10)null,学校varchar(10)null,入学时间datetimenull,constraintPK_班级primarykey(班级编号)));createtable出库(教材编号char(14)notnull,班级编号char(14)notnull,教材名称varchar(10)null,数量intnull,单价float(5)null,出版社编号char(14)null,出版时间datetimenull,负责人varchar(4)null,constraintPK_出库primarykeyclustered(教材编号,班级编号))createtable订购(供应商编号char(14)notnull,教材编号char(14)notnull,订单编号char(14)null,教材名称varchar(10)null,单价float(5)null,数量intnull,constraintPK_订购primarykeyclustered(供应商编号,教材编号));createtable入库(管理员编号char(14)notnull,教材编号char(14)notnull,教材名称varchar(10)null,出版社varchar(10)null,数量intnul],入库时间datetimenull,单价float(5)nul],作者varchar(4)null,负责人varchar(4)null,constraintPK_入库primarykeyclustered(管理员编号,教材编号));createtable学生(学号char(10)notnull,班级编号char(10)null,姓名varchar(4)notnull,学校varchar(10)null,院系varchar(10)null,书费char(6)null,constraintPK_学生primarykey(学号));6.2.3创建视图(1)创建“学生—班级”视图,包括学生的学号,班级编号,姓名,和他们的学校和书费use教材管理库gocreateview学生_班级asselect学号,班级.班级编号,姓名,班级.学校,书费from班级,学生where班级.班级编号二学生.班级编号and班级.学校二学生.学校go(2)创建“订购统计视图”,求每种教材的总订购量,要求包括教材编号和教材名称use教材管理库gocreateview订购统计视图asselect订购.教材编号,订购.教材名称,SUM(订购.数量)AS总库存量from订购,教材where订购.教材编号二教材.教材编号and订购.教材名称二教材.教材名称and订购.数量二教材.数量groupby订购.教材编号,订购.教材名称go(3)创建视图来查看出库和入库中的教材数量的信息use教材管理库gocreateviewv_example(教材编号,出库数量,入库数量)Asselect教材.教材编号,出库.数量,入库.数量from教材,出库,入库where教材.教材编号二出库.教材编号and教材.教材编号二入库.教材编号6.2.4数据表的操纵语句在“学生”表中插入一行数据(学号、班级编号、姓名、书费)为('120506'、'6'、'张三'、'500')USE教材管理库GOINSERTint。学生(学号,班级编号,姓名,书费)VALUES('120506','快乐分享知识无限!6','张三','500')在“管理员”表中的“性别”字段的值为“男”USE教材管理库GOUPDATE管理员SET性别二'男'在“学生”表中,将学号为120501的学生姓名改为王武USE教材管理库GOUPDATE学生SET姓名二'王武'WHERE学号二'120501'在“学生"表中添加一字段“备注"varchar(20),“备注"字段信息为“已毕业,,use教材管理库GOALTERTABLE学生ADD备注varchar(20)(2)UPDATE学生SET备注='已毕业'删除“学生”表中120501号学生的记录USE教材管理库GODELETE学生WHERE学号二'120501'6.3程序设计与调试6.3.1设计索引(1)聚合索引和唯一索引创建学生表上按学号升序排的唯一聚合索引id1use教材管理库gocreateuniqueclusteredindexid1on学生(学号)(2)非聚合索引创建学生表上先按学号升序排,学号一样的再按书费降序排的非聚集索引id2use教材管理库gocreateindexid2on学生(学号,书费desc)6.3.2数据查询操作(1)确定集合查询查询供应商表的所有记录use教材管理库goselect*from班级(2)字符匹配查询查询入库表中所有姓“张”的作者的信息select*from入库where作者like'张%'(3)聚合函数等统计数据的查询统计查询学生表中学生的总人数selectcount(*)from学生查询信息学院学生的最高书费,最低书费和平均书费selectmax(书费)as'最高书费',min(书费)as'最低书费'from学生where院系二'信息学院'查询出库表中教材数量的平均值,平均值显示列标题为“平均数量"selectAVG(数量)as平均数量from出库(4)分组查询查询“教材管理库"中男生和女生的人数select性别,COUNT(性别)from管理员groupby性别(5)连接查询内连接:在“教材管理库”中查询每个学生的学号,姓名和班级名称select学生.学号,学生.姓名,班级.班级名称from学生innerjoin班级on学生.班级编号二班级.班级编号外连接:在“教材管理库”中查询每个学生及其班级的人数情况select学生.*,班级.人数,班级.班级名称from学生leftjoin班级on学生.班级编号二班级.班级编号(6)嵌套查询无关子查询:在“教材管理库”中查询与“0001”在同一班级学习的学生的学校和班级名称select学校,班级名称from班级where班级名称=(select班级名称from班级where班级编号二0001)查询“教材管理库”中网络班级人数最多的班级人数,编号和学校select学校,人数,班级编号from班级where人数二all(select人数from班级where班级名称二网络)and班级名称二'网络(7)带有EXISTS或NOTEXISTS谓词查询在“教材管理库”中查询所有软件班级学生的学校select学校from学生whereexists(select*from班级where班级名称二'软件'and班级编号二学生.班级编号)6.3.3使用控制流语
句编写程序(1)IF・・・ELSE语句如果订购数学教材的数量大于1500,则显示“销售不错”,否则显示“销售一般”if(select数量from订购where教材名称二,数学,)1500print,销售不错'elseprint,销售一般'(2)CASE语句以简单CASE格式查询所有学生的学校情况,包括学号,姓名和学校的英文名select学号,姓名,case学校when'西财'then'xicai'when,理H"hen'ligong'when'邮电'then'youdian'when'麻省'then'masheng'when'哈佛'then'hafo'endas学校from学生(3)GOTO语句输出英语教材的总订购金额,若没有此教材则显示相应的提示信息,用GOTO语句实现declare@afloatif(selectCOUNT(*)from订购where教材名称二,英语。=0gotolable1beginselect@a二单价*数量from订购where教材名称二'英语,print,英语教材的总订购金额:,+cast(@aasvarchar)returnendlable1:print'没有英语教材'6.3.4编写自定义函数及调用(1)标量函数的创建与调用求订购表中某门教材总订购金额createfunctioncoun(@cochar(6))returnsfloatasbegindeclare@cunfloatselect@cun=(select单价*数量from订购where教材名称=@co)return@cunend求物理教材的总订购金额declare@couse1char(6)set@couse1='物理'selectdbo.coun(@couse1)as'物理教材的总订购金额'(2)内嵌表值函数的创建与调用查询某个学校所有学生的班级编号,学号,姓名和班级名称createfunctionxx_func(@xuexiaovarchar(10))returnstableasreturn(select班级.班级编号,班级名称,学号,姓名from班级,学生where学生.学校=@xuexiaoand班级.班级编号二学生.班级编号)查询西财所有学生的班级编号,学号,姓名和班级名称select*fromxx_func('西财')(3)多语句表值函数的创建与调用创建多语句表值函数,通过“班级编号”作为实参调用该函数,可显示该学生的班级名称及学号createfunctionbj_班级(@bhchar(7))returns@班级table(班级编号char(7),班级名称char(6),学号char(10))asbegininsertinto@班级select班级.班级编号,班级名称,学号from班级,学生where班级.班级编号二学生.班级编号and班级.班级编号二@bhreturnend查询“0005”班学生的班级名称及学号select*frombj_班级('0005')6.3.5编写存储过程及调用(1)在“教材管理库”数据库创建无参存储过程,查询各种教材的订购数量并调用createprocedurejc_slasselect教材编号,count(数量)as数量slfrom订购groupby教材编号goexecutejc_sl(2)在“教材管理库"数据库创建带output参数的存储过程,用于计算指定的教材订购的总订购金额,存储过程中使用一个输入参数(教材名称)和一个输出参数(总订购金额)createprocedurepname@jcmcvarchar(20),@counintoutputasselect@coun=单价*数量from订购where教材名称=@jcmcgo执行存储过程pname,查询‘c语言’的总订购金额declare@counintexecutepname'c语言',@counoutputprint'c语言的总订购金额L+str(@coun)(3)在“教材管理库”数据库创建带有参数和默认值(通配符)的存储过程,从学生表中返回指定的学生(提供姓名)的信息。该存储过程对传递的参数进行模式匹配,如果没有提供参数,则返回所有学生的信息createprocedurestudent_name@namevarchar(40)='%'asselect*from学生where姓名like@namego执行存储过程student_name,显示所有学生的信息executestudent_name(4)创建存储过程统计各种教材的订购、到货和发放数量并调用createProcQuery_tongji(@dinggou_bhchar(14)output,@ruku_shlintoutput,@chuku_shlintoutput)asselect@dinggou_bh=订购.教材编号,@ruku_shl二入库.数量,@chuku_shl二出库.数量from订购,出库,入库执行存储过程,输出出库中某一个教材的出库数量DECLARE@ck_shlintExecQuery_tongji@dinggou_bh='ISBN1205290105',@ruku_shl=1005,@chuku_shl=@ck_shloutputselect@ck_shl输出入库中某一个教材的出库数量DECLARE@rk_shlintExecQuery_tongji@dinggou_bh='ISBN1205290105',@chuku_shl=38,@ruku_shl=@rk_shloutputselect@rk_shl6.3.6编写触发器创建触发器,实现教材入库和出库时自动修改库存数量(1)入库与库存的关系教材入库时,可以通过触发程序利用教材编码相同来检索库存里是否有该书的库存记录,如果存在该书的记录,则在原有的记录上增加;如果库存里没有该书的库存记录,则新增加该书的库存记录。完成对库存表的更新,减少了重复输入的麻烦createtriggerupdata_kucunon入库forinsertasdeclare@shlint,@bhchar(10)select@bh二教材编号,@shl二数量frominsertedifexists(select*fromkucunwhere教材编号二@bh)updatekucunset数量二数量+@shlwhere教材编号二@bhelseifexists(select*fromkucunwhere教材编号@bh)begininsertintokucun(教材编号,数量)values(@bh,@shl)endbeginRaiserror(,入库量等于库存量',16,2)rollbacktransactionend测试触发器updatekucunset数量二数量快乐分享知识无限!+2000where教材编号二'ISBN1205290102'(2)出库与库存的关系管理人员将教材出库时,通过触发程序利用教材编码相同来检索该教材是否存在于库存中,如果存在且出库数量不大于库存数量,则在库存数量上减少相应的数量,如果不存在,则说明,输入的教材编码有误,系统提示错误信息,同时,如果该教材存在,但出库的数量大于库存的数量,则系统提示错误信息,并重新输入createtriggerupdate_kucunon出库forinsertasdeclare@shlint,@bhchar(10),@shjdatetimeselect@bh二教材编号,@shl二数量frominsertedifexists(select*fromkucunwhere教材编号=@bhand@shl二数量)updatekucunsetkucun.数量二kucun.数量-@shlwhere教材编号=@bhelsebeginRaiserror(,出入量大于库存量',16,2)rollbacktransactionRaiserror(,入库量等于库存量',16,2)rollbacktransactionend测试触发器updatekucunsetkucun.数量二kucun.数量-44where教材编号二'ISBN1205290102'为学生表创建一个dml触发器,在插入和修改数据时,都会自动显示所有学生的信息createtriggerpr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论