首页 > 数据库技术 > 详细

SQLServer 游标 (A)

时间:2014-04-11 00:39:24      阅读:437      评论:0      收藏:0      [点我收藏+]

游标

游标分为客户端游标和服务器端游标。Sql通过游标可以对一个结果集进行逐行处理。对于使用服务器端游标的过程有:声明打开读取关闭释放。

1 声明游标

1.1 SQL92标准的声明

Declare cursor_name [insensitive][scroll] cursor

For select_statement

[for { readonly|update [of column_name[,…n]]}]

Insensitive:使用查询结果的副本

如:

declare xs_cur1 cursor

for

       select* from xs

       where stu_major=‘计算机

for read only

1.2 T-SQL扩展的游标声明

Declare cursor_name Cursor

[local | global]                                      /*游标作用域*/

[forward_only | scroll]                        /*游标移动方向*/

[static| keyset | dynamic | fast_forward]   /*游标类型*/

[read_only | scroll_locks | optimistic]   /*访问属性*/

[tupe_warning]                               /*类型转换警告信息*/

For select_statement                                       

[for update [of column_name[,…n]]     /*可修改的列*/

Static:静态游标,只读

Keyset:键集驱动游标,可以通过键集驱动游标修改基本表中非关键字列的值。

dynamic :动态游标

fast_forward:只进游标

declare xs_cur2 cursor

dynamic

for

       select* from xs

       where stu_major=‘计算机

 

2 打开游标

Open {{[global] cursor_name}| cursor_variable_name}

例子:/*定义游标,然后打开,输出其行数*/

declare xs_cur3 cursor

local scroll scroll_locks

for

select stu_id,stu_name,stu_total_credit    from xs

for update of stu_total_credit

open xs_cur3

select ‘the number of rows‘=@@cursor_rows

3 读取数据

游标打开后,就可以使用fetch语句从中读取数据。Fetch语句的格式为:

Fetch

[next|prior|first|last|absolute{n|@nvar}|relative{n|@nvar}]

From {{[global] cursor_name}| cursor_variable_name}

Into @variable_name[,….n]

如:fetch first from xs_cur2

注意:fetch语句执行的状态保存在全局变量@@Fetch_status中,其值为0,表示执行成功;为-1,表示所要读取的行不在结果集中;为-2,表示被提取的行已经不在(已被删除)。

4 关闭游标

Close  {{[global] cursor_name}| cursor_variable_name}

5 释放游标

Deallocate {{[global] cursor_name}| cursor_variable_name}

 

SQLServer 游标 (A),布布扣,bubuko.com

SQLServer 游标 (A)

原文:http://www.cnblogs.com/llbofchina/p/3656286.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!