- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库原理实验9概要1
实验九 游标与存储过程
1 实验目的与要求
(1) 掌握游标的定义和使用方法。
(2) 掌握存储过程的定义、执行和调用方法。
(3) 掌握游标和存储过程的综合应用方法。
2 实验内容
请完成以下实验内容:
(1) 创建游标,逐行显示Customer表的记录,并用WHILE结构来测试@@Fetch_Status的返回值。输出格式如下:
客户编号+-----+客户名称+----+客户住址+-----+客户电话+------+邮政编码
脚本:
DECLARE @cus_No char(10),@cus_Name char(20),@cus_add char(10),@cus_Tele char(10),@cus_Code char(7)--定义几个变量
DECLARE @text char(100)
DECLARE cus_cur SCROLL CURSOR FOR
SELECT customerNo48,customerName48,address48,telephone48,zip48
FROM customer48
ORDER BY customerNo48 --定义游标
select @text==================================0103348熊昌磊===================================
PRINT @text
select @text= 客户编号+----------+客户名称+----------+客户住址+----------+客户电话+----------+邮政编码
PRINT @text
select @text=---------------------------------------------------------------------------------
PRINT @text --格式化输出
open cus_cur --打开游标
FETCH cus_cur INTO @cus_No,@cus_Name,@cus_add,@cus_Tele,@cus_Code--提取游标中的信息并分别给内存变量
while (@@FETCH_status=0)
BEGIN
SELECT @text=|+@cus_No+ +@cus_Name+ +@cus_add+ +@cus_Tele+ +@cus_Code+|
PRINT @text
FETCH cus_cur INTO @cus_No,@cus_Name,@cus_add,@cus_Tele,@cus_Code
END
select @text=---------------------------------------------------------------------------------
PRINT @text
select @text==================================================================================
PRINT @text
CLOSE cus_cur--关闭游标
DEALLOCATE cus_cur
截图:
(2) 利用游标修改OrderMaster表中orderSum的值。
脚本:
DECLARE @cus_No char(15)--定义几个变量
DECLARE @cus_total numeric(8,2),@text char(100)
DECLARE cus_cur SCROLL CURSOR FOR
select orderNo48,sum(quantity48*price48) as total
from orderdetail48
group by orderNo48
select @text= 订单编号+ + 订单总额
print @text
open cus_cur
fetch cus_cur into @cus_No,@cus_total
while(@@fetch_status=0)
begin
select @cus_total=ordersum48
from orderMaster48
where orderNo48=@cus_No
select @text=@cus_No++convert(char(10),@cus_total)
print @text
fetch cus_cur into @cus_No,@cus_total
END
CLOSE cus_cur--关闭游标
DEALLOCA
文档评论(0)