游标的概念
结果集,结果集就是select查询之后返回的所有行数据的集合。
游标
- 是处理数据的一种方法。
- 它可以定位到结果集中的某一行,对数据进行读写。
- 也可以移动游标定位到你需要的行中进行数据操作。
- 是面向集合的数据库管理系统和面向行的程序设计之间的桥梁
游标的种类
1.静态游标( STATIC )意味着,当游标被建立时,将会创建FOR后面的SELECT语句所包含数据集的副本存入tempdb数据库中,任何对于底层表内数据的更改不会影响到游标的内容。
2.动态游标( DYNAMIC )是和STATIC完全相反的选项,当底层数据库更改时,游标的内容也随之得到反映,在下一次fetch中,数据内容会随之改变。
3.键集驱动游标( KEYSET )可以理解为介于STATIC和DYNAMIC的折中方案。将游标所在结果集的唯一能确定每一行的主键存入tempdb,当结果集中任何行改变或者删除时,@@FETCH_STATUS会为-2,KEYSET无法探测新加入的数据。
4.只进游标 可以理解成不支持滚动,只支持从头到尾顺序提取数据,数据库执行增删改,在提取时是可见的,但由于该游标只能进不能向后滚动,所以在行提取后对行做增删改是不可见的。 ( FAST_FORWARD 可以理解为FORWARD_ONLY的优化版本.FORWARD_ONLY执行的是静态计划,而FAST_FORWARD是根据情况进行选择采用动态计划还是静态计划,大多数情况下FAST_FORWARD要比FORWARD_ONLY性能略好。
<