原理
在数据库开发过程中,我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?
我们知道sql server 并没有提供单一记录的表达形式,除非使用where限制一条语句,因此需要借助游标来进行面向单条记录的数据处理。
游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。由此可见,游标允许应用程序对查询语询select返回的行结果集中每行进行相同或不同的操作,而不是一次对整个结果集进行同-种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力;而且,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。
使用方法
使用游标的基本操作步骤:声明游标、打开游标、提取数据、关闭游标。
1、声明游标
游标的声明包括两个部分:游标的名称、游标用到的select语句。
eg.
declare custCursor CURSOR FOR
select cus_no,name,
yue --余额
from customer
注意点:如同其它变量声明一样,游标声明是不执行的,不能将断点设在这一行代码上,也不能声明两个同名的游标,即便是用if…end if语句。
2、打开游标
声明游标后在做其它操作时必须先打开它,打开游标实际与其相关的sql语句,打开游标代码:
open custCursor ;
3、提取数据