sql 游标的定义与使用

http://blog.sina.com.cn/s/blog_719afd7801019yx1.html

游标
 
1.定义游标 
 
2.打开游标
 
3.使用游标
 
4.关闭游标
 
5.释放游标

 

--定义游标
DECLARE 玩具cursor INSENSITIVE SCROLL CURSOR
FOR
SELECT 玩具号, 玩具名 FROM dbo.玩具
WHERE 照片路径 is null

--打开游标
OPEN 玩具cursor

declare @玩具名 varchar(128)

--使用游标
FETCH NEXT FROM 玩具cursor

FETCH FIRST FROM 玩具cursor -- 第一个位置

FETCH LAST FROM 玩具cursor -- 最后一个位置

FETCH PRIOR FROM 玩具cursor -- 前一个位置

FETCH RELATIVE -2 FROM 玩具cursor -- 相对位置

FETCH ABSOLUTE 11 FROM 玩具cursor -- 绝对位置

FETCH NEXT FROM 玩具cursor INTO @玩具名


WHILE (@@FETCH_STATUS = 0)
BEGIN

FETCH NEXT FROM 玩具cursor INTO @玩具名
END

--关闭游标
CLOSE 玩具cursor

--释放游标
DEALLOCATE 玩具cursor


-----------------游标-------------------

 --1.定义游标 
DECLARE 玩具_cursor SCROLL CURSOR
FOR
SELECT 
玩具号, 玩具名, 价格 FROM dbo.玩具
WHERE 玩具号 IN (
 
 SELECT distinct 玩具号 FROMdbo.定单详情)
 
 ORDER BY 玩具号
 

 
--2.打开游标
OPEN 玩具_cursor

PRINT'玩具号    玩具名         价格'
DECLARE @玩具号 varchar(6) , @玩具名 varchar(20), @价格 money

 --3.使用游标
FETCH NEXT FROM 玩具_cursor INTO @玩具号,@玩具名,@价格
WHILE (@@FETCH_STATUS = 0)
BEGIN
 
PRINT@玩具号+'    '+@玩具名+'        '+CAST(@价格 AS VARCHAR(20))
 
FETCH NEXT FROM 玩具_cursor INTO@玩具号,@玩具名,@价格
END
 

 
--4.关闭游标
CLOSE 玩具_cursor
 
--5.释放游标
DEALLOCATE 玩具_cursor

current of


------------------修改游标--------------------

DECLARE Update_sursor   SCROLLCURSOR
FOR
SELECT 玩具号, 玩具名, 价格 FROM dbo.玩具
WHERE 
数量 > 50
FOR UPDATE OF 价格

--select * from dbo.玩具

OPEN Update_sursor

--declare @价格1 money

FETCH NEXT FROM Update_sursor

WHILE (@@FETCH_STATUS = 0)
BEGIN

 UPDATE dbo.玩具 SET 价格 = 价格*2
 
WHERE CURRENT OF Update_sursor
 

 
FETCH NEXT FROM Update_sursor
END

CLOSE Update_sursor

DEALLOCATE Update_sursor


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值