Sql server游标-1

1.定义:游标则是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据。游标一次只指向一行。

用处:

1.指定到结果集中的某一行。

2.对当前位置的数据进行读写。

3.可以对结果集中的数据单独操作,而不是整行执行相同的操作。

4.是面向集合的数据库管理系统和面向行的程序设计之间的桥梁。

2.游标类型:

 2.1.静态游标(不检测数据行的变化)2.2.动态游标(反映所有数据行的改变)2.3.仅向前游标(不支持滚动)2.4.键集游标(反映修改,但不能准确反映插入,删除)

3.游标的优缺点

3.1优点:

游标的结果集是由SELECT语句产生,如果处理过程需要重复使用一个记录集,那么创建一次游标而重复使用若干次,比重复查询数据库要快的多。

3.2缺点:

因为游标在使用过程中会锁住行,当数据量大时,可能会影响其他功能的正常运行。因此数据量较小时,考虑使用游标。游标将SELECT查询结果集作为变量,保存在内存中,如果游标数据量过大,会占用过多内存,造成内存不足,影响系统性能。

4.游标的使用:

 4.1定义游标,

declare cursor_b cursor --定义游标名称
for select TobaccoName,TobaccoCount,CustomerName from OrderTable  --定义游标数据来源基础表

 4.2打开游标,

open cursor_b 

 4.3使用游标,

fetch next from cursor_b
while @@FETCH_STATUS = 0
begin
fetch next from cursor_b
end

 4.4关闭游标,

close  cursor_b 

 4.4删除游标

DEALLOCATE cursor_b

5.几种提取数据的方法

fetch first from  游标名 第一行

fecth last from 游标名 最后一行

fectch absolute n from 游标名 从第一行开始数,到第n行(n为整数)

fecth relation n from 游标名 从游标的当前位置数,到第n行(n为整数)

fecth next from  游标名 当前位置的下一行

fecth prior from 游标名 当前位置的上一行

posted @ 2023-06-14 16:38  KevinSteven  阅读(41)  评论(0编辑  收藏  举报