资源描述:
《实验5:数据库编程技术.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验5:数据库编程技术第1个实验.游标与存储过程——第7章实验十二请完成以下实验内容:(1)创建游标,逐行显示表Customer.的记录,并用WHILE结构来测试@@Fetch_Status的返回值。输出格式如下:'客户编号'+'-----'+'客户名称'+'----'+'客户地址'+'-----'+'客户电话'+'------'+'客户邮编'+'------'declare@nochar(9),@navarchar(40),@adchar(40),@tevarchar(20),@zichar(6),@textchar(100)declarecustcursorforselectcusto
2、merno,customername,address,telephone,zipfromcustomerselect@text=replicate('=',38)+'客户信息'+replicate('=',38)print@textselect@text=space(84)print@textselect@text='客户编号'+'----------'+'客户名称'+'------------'+'客户地址'+'--------'+'客户电话'+'---------'+'客户邮编'+'-----'print@textopencustfetchcustinto@no,@na,@ad,@te
3、,@ziwhile(@@fetch_status=0)beginselect@text=@no+space(5)+convert(char(20),@na)+space(5)+convert(char(10),@ad)+space(3)+convert(char(13),@te)+space(7)+@ziprint@textfetchcustinto@no,@na,@ad,@te,@ziendclosecustdeallocatecust(2)利用游标修改OrderMaster表中Ordersum的值。declare@ordernochar(12),@ordersumnumeric(9,2
4、)declareordermascursorforselecta.orderno,sum(b.quantity*b.price)fromordermastera,orderdetailbwherea.orderno=b.ordernogroupbya.ordernoopenordermasfetchordermasinto@orderno,@ordersumwhile(@@fetch_status=0)beginupdateordermastersetordersum=@ordersumwhereorderno=@ordernofetchordermasinto@orderno,@orde
5、rsumendcloseordermasdeallocateordermas结果查看:select*fromordermaster(3)创建存储过程,要求:按Employee表定义的CHECK约束自动产生员工编号。createprocedurechansheng(@emp_intint)asdeclare@empnochar(8)declarechancursorforselectemployeenofromemployeeorderbyemployeenodescopenchanfetchchaninto@empnowhile(@@fetch_status=0and@emp_int>0)
6、beginset@empno='E'+convert(char(7),convert(int,(substring(@empno,2,7))+1))print@empnoset@emp_int=@emp_int-1ENDclosechandeallocatechan执行:按用户需要产生的员工编号个数产生编号execchansheng3(产生三个)(4)创建存储过程,要求:查找姓“李”的“职员”的员工编号、订单编号、销售金额。createprocedureempname(@emp_namechar(2))asdeclare@empnochar(8),@empnamevarchar(10),@
7、salarynumeric(8,2),@textvarchar(60)declarechancursorforselectemployeeno,employeename,salaryfromemployeewhereconvert(char(2),employeename)=@emp_nameset@text='编号'+space(10)+'姓名'+space(10)+'薪水'print@textopenchanfetc