1、数据库原理实验学号:123012008xxx 姓名:xxx 班级(x)小班 日期:2010 年 月 日1实验八 数据库编程技术游标、存储过程与触发器一、实验目的 1掌握游标的定义和使用方法2掌握存储过程的定义、执行和调用方法3掌握游标和存储过程的综合应用方法。4掌握触发器的创建和使用方法。5掌握游标和触发器的综合应用方法。二、实验环境(实验的软件、硬件环境)硬件:PC 机 软件:SQL2000三、实验指导说明请复习第八章数据库编程的相关知识,完成如下的实验内容。四、实验内容(1)利用游标查找所有女业务员的基本情况(2)创建一游标,逐行显示表 customer 的记录,要求按客户编号+-+客户名
2、称+ -+客户地址+-+客户电话 +-+客户邮编 +-格式输出,并且用 while 结构来测试游标的函数Fetch_Status 的返回值。(3)利用游标查找 orderDetail 表格,汇总订单总金额并写入 orderMaster表中的 Ordersum 的值解一:update ordermasterset ordersum=0declare orderno intdeclare total numeric (9,2)declare cur_orderdetail scroll cursor for 数据库原理实验学号:123012008xxx 姓名:xxx 班级(x)小班 日期:2010
3、 年 月 日2select orderno,sum(quantity*price)from orderdetailgroup by ordernoopen cur_orderdetailfetch next from cur_orderdetail into orderno,total while (fetch_status=0)begin update ordermaster set ordersum=totalwhere orderno=ordernofetch next from cur_orderdetail into orderno,total endclose cur_orderd
4、etaildeallocate cur_orderdetail解二:declare ordermaster_cur cursor forselect ordernofrom ordermasterorder by ordernodeclare orderno char(12)declare quantity intdeclare price numeric(7,2)open ordermaster_curfetch next from ordermaster_cur into ordernowhile(fetch_status=0)begindeclare orderdetail_cur cu
5、rsor for数据库原理实验学号:123012008xxx 姓名:xxx 班级(x)小班 日期:2010 年 月 日3select orderno,quantity,pricefrom orderdetailwhere orderno=ordernoorder by ordernoopen orderdetail_curfetch next from orderdetail_cur into orderno,quantity,pricewhile(fetch_status=0)beginupdate ordermasterset ordersum=quantity*price+ordersu
6、mwhere orderno=ordernofetch next from orderdetail_cur into orderno,quantity,priceendclose orderdetail_curdeallocate orderdetail_curfetch next from ordermaster_cur into ordernoendclose ordermaster_curdeallocate ordermaster_cur/*使用游标修改 ordersum,使其计总值*/(4)利用游标显示出 orderMaster 表中每一个订单所对应的明细数据信息。(5)利用存储过程
7、,给 Employee 表添加一条业务部门员工的信息。(6)利用存储过程输出所有客户姓名、客户订购金额及其相应业务员的姓名(7)利用存储过程查找某员工的员工编号、订单编号、销售金额。(8)利用存储过程查找姓“李”并且职称为“职员”的员工的员工编号、订单编号、销售金额(9)请使用游标和循环语句编写一个存储过程 proSearchCustomer,根据客户编号,查询该客户的名称、地址以及所有与该客户有关的销售记录,销售记数据库原理实验学号:123012008xxx 姓名:xxx 班级(x)小班 日期:2010 年 月 日4录按商品分组输出。(10)设置一个触发器,该触发器仅允许 dbo 用户可以删除 Employee 表内数据,否则出错。(11)在 OrderMaster 表中创建触发器,插入数据时要先检查 Employee 表中是否存在和 Employee 表同样值的业务员编号,如果不存在则不允许插入。(12)级联更新:当更新 customer 表中的 customerNo 列的值时,同时更新OrderMaster 表中的 customerNo 列的值,并且一次只能更新一行。五、实验步骤请完成实验内容,并写出具体的实验步骤六、思考题:1存储过程和触发器,函数的区别?七、总结(实验过程的体会、心得和实验教与学之间还需改进的内容)