游标实例

本文介绍了SQL Server中游标的使用,包括为何使用游标、如何声明、打开、操作及关闭游标,并提供了详细的示例代码,帮助理解如何在SQL Server中逐行处理数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。


1. 为何使用游标:
    使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。


2. 如何使用游标:
    一般地,使用游标都遵循下列的常规步骤:
   (1) 声明游标。把游标与T-SQL语句的结果集联系起来。
   (2) 打开游标。
   (3) 使用游标操作数据。
   (4) 关闭游标。


2.1. 声明游标
    DECLARE CURSOR语句SQL-92标准语法格式:
    DECLARE 游标名 [ INSENSITIVE ] [ SCROLL ] CURSOR
    FOR  sql-statement
    Eg:
    Declare MycrsrVar  Cursor
    FOR Select *  FROM tbMyData

 

 

2.2  打开游标
    OPEN MycrsrVar
    当游标被打开时,行指针将指向该游标集第1行之前,如果要读取游标集中的第1行数据,必须移动行指针使其指向第1行。就本例而言,可以使用下列操作读取第1行数据:
         FETCH FIRST from E1cursor
         或 FETCH NEXT from E1cursor


 2.3 使用游标操作数据
    下面的示例用@@FETCH_STATUS控制在一个WHILE循环中的游标活动

例如:

declare @nname varchar(100)
declare @uname varchar(100)
--创建游标并赋值
declare myCursor cursor for
select nickname,username from users

open myCursor--打开游标
--从游标中每次取一条数据
fetch next from myCursor into @nname,@uname
while(@@fetch_status=0)
begin
print '昵称:
'+@nname+'  姓名:'+@uname
fetch next from myCursor into @nname,@uname
end
---关闭游标
close myCursor
---销毁游标
deallocate myCursor


---注意
---申请变量时变量名前必须有@符号,但是创建游标变量名前不能加@符号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值