一般情况下游标的使用应遵循以下5个步骤:

1. 声明游标

2. 打开游标

3. 从游标读取行,并有选择地进行处理

4. 关闭游标

5. 释放游标

use pubs

/*声明变量*/

declare @title varchar(100),@price smallmobey

/*声明游标*/

declare price——cursor for

select title,price

from titles

where price<15

/*打开游标*/

open price cursor

/*获取数据并进行处理*/

fetch from price_cursor

into @title,@price

while @@fetch_status=0

begin

print @title+' '+convert(char(6),@price)+'$'

fetch next from price_cursor

into @title,@price

end

/*关闭游标*/

close price——cursor

/*释放游标*/

deallocate price_cursor

go

获取数据并进行处理

fetch语句用于从结果几集中获取一行数据。

fetch from cursor_name

他表示获取结果集中的当前行

fetch next from price_cursor

fetch prior from price_cursor

first和last分别表示获取第一条和最后一条数据

如果想获取数据存入变量,可以使用into选项。

fetch from price_cursor

into @title,@price

如果返回0,表示fetch语句成功,如果返回-1,表示fetch语句失败,如果返回-2,表示被提取的行不存在。


例如


游标使用方法:

use db1

declare my_cursor cursor scroll dynamic /*scroll表示可随意移动游标指针(否则只能向前),dynamic表示可以读写游标(否则游标只读)*/

for

select 姓名 from 个人资料

open my_cursor

declare @name sysname

fetch next from my_cursor into @name

while(@@fetch_status=0)

begin

print '姓名: ' + @name

fetch next from my_cursor into @name

end

fetch first from my_cursor into @name

print @name

/* update 个人资料 set 姓名='zzg' where current of my_cursor */

/* delete from 个人资料 where current of my_cursor */

close my_cursor

deallocate my_cursor