创建存储过程与触发器

2018-12-29 17:52

《数据库管理系统SQL Server》实验报告

实验7 创建存储过程与触发器 实验日期和时间:2011-11-11 班级:09计本(4) 学号:2009810182 实验室:2#206 姓名:周伟 实验环境: 1. 硬件:1G内存 1.73GHz 2. 软件:SQL server2008 实验原理: 创建存储过程,执行存储 通过建立触发器实现对数据库的更新。 实验任务: 此作业成绩得分根据你完成的任务的难度和数量评分,完成后在实验室给老师演示验收,课后提交电子版报告。如额外完成自拟题目应当事先将所拟题目提交给老师或在报告中明确标注题意。 假定有某个企业(或公司,或代理商)经销某类产品,需要用一个信息系统对销售业务和库存进行管理。 首先,他们得在数据库中存储所有经营过的产品的信息,并建立现有库存的信息表;其次,对于每次销售或者进货,他们都得记录下来以便进行管理,将来对这些信息进行统计或财务管理;再次,在每笔销售记录中需要记录相关客户信息,在进货时需要记录相关供应商的信息,也为了与不同的供应商和客户进行联系,需要分别建立二者的信息表。综上所述,在以上建立的数据库中我们至少需要以下几个基本表: 1. 产品表(记录公司曾经经营的所有产品信息) 2. 现有库存表(记录公司目前经营的产品的现有库存信息) 3. 出库单表(记录产品销售出库时的情况:时间、销售员、客户、商品编码、商品数量等) 4. 入库单表(记录公司每次产品进货入库时的信息) 5. 供应商表(记录为公司供货的主要供应商信息) 6. 客户表(记录公司的所有客户信息) ? 以下是供参考的表结构的部分信息,同学们可以根据题意自行修改表的结构 1. 产品表(记录公司的产品信息) 字段名 产品编号 产品名称 类别 供应商编号 产地 最新参考单价 数据类型 文本 文本 文本 文本 文本 货币 第1页

长度 主键 非空 备注 外键(来自供应商表) 2011年5月16日

《数据库管理系统SQL Server》实验报告

规格 ?? ?? 文本 2. 现有库存表(记录公司的现有库存信息) 字段名 产品编号 产品名称 产品规格 类别 零售单价 ?? 现有库存量 最小库存量 存放地点 ?? 数据类型 长度 文本 货币 数字 数字 文本 备注 主键、外键(来自产品表) 3. 出库单表(记录产品销售出库时的情况) 字段名 出库单号 客户编号 产品编号 出库数量 出库价格 金额 ?? 目的地 经手人 数据类型 长度 备注 文本 文本 文本 数字 货币 货币 文本 文本 主键 外键(来自客户表) 外键(来自产品表) =出库数量×出库价格 可以默认为系统时间 出库日期 日期/时间 4. 入库单表(记录公司每次产品进货入库时的信息) 字段名 入库单号 产品编号 供应商编号 入库数量 入库价格 ?? 入库日期 经手人 数据类型 长度 文本 文本 文本 数字 货币 日期/时间 文本 备注 主键 外键(来自产品表) 外键(来自供应商表) 可以默认为系统时间 第2页 2011年5月16日

《数据库管理系统SQL Server》实验报告

5. 供应商表(记录为公司供货的主要供应商信息) 字段名 供应商编号 供应商名称 联系人姓名 地址 ?? 电话 传真 电子邮箱 数据类型 长度 文本 文本 文本 文本 文本 文本 文本 备注 主键 非空 6. 客户表(记录公司的所有客户信息) 字段名 客户编号 客户名称 联系人 城市 地址 ?? 电话 传真 电子邮箱 数据类型 长度 文本 文本 文本 文本 文本 文本 文本 文本 备注 主键 非空 要求: 1) 设计并创建以上的“库存管理”系统的数据库。注意,建表时,表中的外键的数据类型应当与其所参照的主表中的主键数据类型一致。(至少创建题目所需要的表) 2) 创建关系图,建立表之间的联系以保证参照完整性。 3) 基本数据录入。可以直接录入,也可将其它格式的表中的数据导入,或查询其它表中可利用的数据并插入到现有的表中。 4) 创建存储过程。(任选一题) ① 创建可以按“产品编号”(参数)进行产品库存信息查询的存储过程。 ② 创建可以按“类别”(参数)进行某类产品库存信息查询的存储过程。 ③ 创建可以按产品名称或产品名称打头字符串(参数)进行产品库存信息查询的存储过程。 ④ 自拟题 5) 创建触发器。(任选一题) ① 创建“现有库存”表的DELETE触发器,禁止删除库存信息。(只需要现有库存表) ② 创建“出库单”表的INSERT触发器。在该表中插入出库记录时,能自动生成唯一的出库单号(可设置为自动编号),在填写“产品编号”和“出库数量”时,通过触发器的作用,能判断该产品的现有库存数量是否足够,如果足够满足此次出库数量,则能自动填写出库记录中与该记录“产品编号”对应的: “产品名称”(来自产品表/现有库存表)、 第3页 2011年5月16日 《数据库管理系统SQL Server》实验报告

“产品规格”(来自产品表/现有库存表)、 “出库价格”(来自产品表/现有库存表)、 “金额”(能自动计算并填入:=出库价格*出库数量)、 “出货日期”(来自系统日期)等字段, 并能根据此次出库数量自动减少该产品的现有库存数量值; 如果现有库存数量不能满足此次出库数量,则拒绝此记录插入(事务回滚)并报警提示库存不足。(需要现有库存表和出库单表) ③ 创建“出库单”表的INSERT触发器。如果此产品出库后的现有库存量低于最小库存量,则报警提示该产品库存不足需要进货。(需要现有库存表和出库单表) ④ 创建“入库单”表的INSERT触发器。在该表中插入入库记录时,能自动生成唯一的入库单号(可设置为自动编号),在填写“产品编号”和“入库数量”时,通过触发器的作用,能判断在“现有库表中”是否存在该产品库存记录,如果有,则自动更新该产品的现有库存数量,如果现有库存表中不存在该产品的库存记录(有可能是未经营过的新产品),则先在现有库存表中自动插入该产品的库记录;并通过触发器的作用自动填写入库记录中与该记录“产品编号”对应的: “产品名称”(来自产品表/现有库存表)、 “产品规格”(来自产品表/现有库存表)、 “入库价格”(来自产品表的最新参考单价/现有库存表的零售单价)、 “金额”(能自动计算并填入:=出库价格*出库数量)、 “出货日期”(来自系统日期)等字段。 (需要现有库存表和入库单表) 先在第一栏填写自己选择的题目和欲实现的功能,再在其余栏目中分别填写自己的代码以及执行情况、测试方案和数据、测试结果等等。如果选做多个或自拟题,请自己依照格式添加栏目,自拟题请写清题意。 我的选题1:(描述题目和欲实现的功能) 1.创建可以按“产品编号”(参数)进行产品库存信息查询的存储过程。 原代码: 创建存储过程 create procedure xinxi_cx @123 nchar(10) as begin select *from 现有库存量 where 产品编号=@123 end; 测试方案及数据: 在新建查询中输入:EXEC @result = [dbo].[xinxi_cx] @123 = N'001' 观察能否返回产品编号为001的产品现有库存信息 第4页 2011年5月16日 《数据库管理系统SQL Server》实验报告

测试结果:(文字说明、原代码、结果贴图) 2.创建可以按“类别”(参数)进行某类产品库存信息查询的存储过程 原代码: 创建存储过程: create procedure chanpinleibie @123 nchar(10) as begin select * from 产品表 where 类别=@123 end; 测试方案及数据: 在新建查询中输入: exec @result=chanpinleibie @123='电' select 'result'=@result 测试结果:(文字说明、原代码、结果贴图) 第5页

2011年5月16日


创建存储过程与触发器.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:社会保障作业及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: