实验5:存储过程、触发器和视图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五周实验

可编程对象(视图、存储过程和触发器)

一.实验目的

1.了解视图、存储过程和触发器的基本概念和使用方法。

2.学会用两种方法创建和维护视图、存储过程和触发器等数据库对象:一是在SQL Server Management Studio通过可视化操作实现,一是在查询窗口执行相关T-SQL语句实现。二.实验环境

●SQL Server Management Studio

●BookStore数据库

提示1:到“课程辅助材料”中下载BookStore数据库,在SQL Server中附加。三.实验内容

说明:标记为▲的是必做题目,其他为选作题目。首先需要附加BookStore数据库。

1▲.创建视图。

(1)创建视图V_BookSell,使其包含图书销量情况。要求显示图书代码(BookCode)、图书名称(BookName)、作者(Author)、出版社名称(Publisher)以及数量(Amount)。(2)创建视图V_CustomerBookOrderDetail。要求显示订单号(OrderCode)、客户名(Name)、客户等级(VIPClass)、书名(BookName)、单价(Price)、数量(Amount)、折扣(Discount)以及总价(TotalPrice=Price*Amount*Discount)。

(3)创建视图V_CustomerVIPABTotalOrder,汇总客户订单信息。使其包含用户等级为“A”和“B”、且不姓“郭”和“刘”的客户订单信息,要求显示客户姓名(Name)以及所订图书总金额,并按所订图书总金额降序排列。

2.创建存储过程

(1)▲创建存储过程proc_SearchBook,查询指定书名的图书信息。

(2)创建存储过程proc_FuzzySearchBook,实现按书名(全名或部分书名)模糊查询图书信息。

(3)创建存储过程proc_SearchCustomerMoney,查询指定客户在某一年之前的购书总金额(已知客户号和年份,输出总金额)。

(4)▲创建存储过程proc_UpdateVIPClass,修改指定客户(CustomerCode)的用户等级(VIPClass)和评价时间(EvaluateDate),其中评价时间(EvaluateDate)设置为当前时间。。

(5)创建存储过程proc_InsertOrderDetail,向OrderDetail表添加一条记录。

3.创建触发器

(1)▲创建触发器tri_OrderDetailInsertUpdate,当在OrderDetail表中增加或修改订单细节时,计算Order表中相关订单的总价格TotalPrice。

(2)创建触发器tri_CustomerEvaluationInsertUpdate,当CustomerEvaluation表发生Insert、Update操作时,以当前时间修改被更新记录的EvaluateDate值。

(3)创建触发器tri_UpdateOrderStatus,当将Order表中记录的订单状态改为“结单”时,自动计算CustomerEvaluation中该用户的客户等级。

(4)创建触发器tri_BookOrderDel,当从Order表删除记录时,检查订单状态如果不是“待处理”状态,报告“结单或已发货,订单不能被删除”,否则先删除OrderDetail表中的相关数据。

相关文档
最新文档