文档库 最新最全的文档下载
当前位置:文档库 › SQL的游标使用规则详解和范例

SQL的游标使用规则详解和范例

SQL的游标使用规则详解和范例
SQL的游标使用规则详解和范例

SQL的游标使用规则详解和范例

MS-SQL的游标是一种临时的数据库对象,既对可用来旋转储存在系统永久表中的数据行的副本,也可以指向储存在系统永久表中的数据行的指针。

游标为您提供了在逐行的基础上而不是一次处理整个结果集为基础的操作表中数据的方法。1.如何使用游标

1)定义游标语句Declare <游标名> Cursor For

2)创建游标语句Open <游标名>

3)提取游标列值、移动记录指针Fetch <列名列表> From <游标名> [Into <变量列表>] 4)使用@@Fetch_Status利用While循环处理游标中的行

5)删除游标并释放语句Close <游标名>/Deallocate <游标名>

6)游标应用实例

--定义游标

Declare cur_Depart Cursor

For Select cDeptID,cDeptName From Department into @DeptID,@DeptName

--打开游标

Open cur_Depart

--移动或提取列值

Fetch From cur_Depart into @DeptID,@DeptName

--利用循环处理游标中的列值

While @@Fetch_Status=0

Begin

Print @DeptID,@DeptName

Fetch From cur_Depart into @DeptID,@DeptName

End

--关闭/释放游标

Close cur_Depart

Deallocate cur_Depart

简单的过程:

定义游标

DECLARE CustomerCursor CURSOR FOR

SELECT acct_no,name,balance

FROM customer

WHERE province="北京";

打开游标

OPEN CustomerCursor;

提取数据--设置循环

lb_continue=True

ll_total=0

DO WHILE lb_continue

FETCH CustomerCursor

INTO:ls_acct_no, :ls_name, :ll_balance;

If sqlca.sqlcode=0 Then

ll_total+=ll_balance

Else

lb_continue=False

End If

LOOP

--关闭游标

CLOSE CustomerCursor;

Deallocate CustomerCursor

2.语句的详细及注意

1)定义游标语句

Declare <游标名> [Insensitive] [Scroll] Cursor

For