实验13使用光标.doc
文本预览下载声明
实验十三 游标使用基础
姓名:
方令
学号:
0807022205
专业:
网络工程
班级:
2
同组人:
无
实验日期:
2011.11.19
【实验目的与要求】
理解游标的概念。
熟悉游标的工作机制及游标的使用
【实验内容与步骤】
游标的使用
1. 使用游标依次提取数据
阅读以下程序,理解游标声明与使用的基本方法和过程。
Declare CP_csr_getdata cursor
for
select 产品编号,产品名称,价格,库存量
from CP
where 价格=1200
order by 价格
--打开游标
OPEN CP_csr_getdata
--执行第一次取数操作
FETCH next From CP_csr_getdata
--检查以确定是否还可以继续取数
while @@FETCH_STATUS=0
BEGIN
FETCH next From CP_csr_getdata
END
--关闭游标
close CP_csr_getdata
--释放游标
deallocate CP_csr_getdata
运行结果:
2. 使用游标提取数据
以下程序段使用游标提取查询结果集中不同位置的数据,请阅读并理解其中游标的作用。
declare CP_csr scroll cursor
for
select 产品编号,产品名称,价格,库存量
from CP
where 价格=1200
order by 价格
--打开游标
open CP_csr
--提取数据集中的最后一行
fetch last from CP_csr
--当前游标所在行的上一行
fetch prior from CP_csr
--提取数据集中的第四行
fetch absolute 4 from CP_csr
--提取第二行
fetch relative -2 from CP_csr
--数据集中的第一行
fetch first from CP_csr
--关闭游标
close CP_csr
--释放游标
deallocate CP_csr
运行结果:
3. 使用游标读取数据到变量中并输出
declare @product_ID char(6) --声明变量product_ID
declare @product_Name char(30) --声明变量product_Name
declare CP_csr_getdata cursor
for
select 产品编号,产品名称
from CP
where 价格=1200
order by 价格
--打开游标
OPEN CP_csr_getdata
--执行第一次取数操作,将查询得到的产品编号和
--产品名称分别存于变量product_ID和product_Name中
FETCH next From CP_csr_getdata
into @product_ID,@product_Name
--检查以确定是否还可以继续取数
while @@FETCH_STATUS=0 --@@开始的变量表示全局变量
BEGIN
print @product_ID+ +@product_Name --遍历游标行,输出相应的值
FETCH next From CP_csr_getdata
into @product_ID,@product_Name
END
--关闭游标
close CP_csr_getdata
--释放游标
deallocate CP_csr_getdata
运行结果:
.4. 使用游标更新数据
以下程序段实现的是使用游标更新CP表中价格=1200的数据记录行,将其价格变为原来价格的1.5倍。
declare CP_csr_updatedata cursor
for
select 产品编号,产品名称,价格
from CP
where 价格=1200
order by 价格
for update of 价格
--打开游标
OPEN CP_csr_updatedata
--执行第一次取数操作
FETCH CP_csr_updatedata
--检查以确定是否还可以继续取数
while @@FETCH_STATUS=0
BEGIN
update CP
set 价格=价格*1.5
where current of CP_csr_updatedata
fetch CP_csr_updatedata
END
--关闭游标
close CP_csr_updatedata
--释放游标
deallocate CP_csr_updatedata
运行结果:
实验练习:
显示全部