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 游标名 当前位置的上一行