游标的概念
对表进行操作的SQL语句通常产生一组记录,但是许多应用程序,尤其是嵌入SQL语句,不能把整个结果集作为一个单元处理,因此需要一种机制来集中处理某一行或几行(类似于c语言中的指针),游标由此而生。
游标的应用分为五步
1.声明游标
T-SQL中声明游标使用DECLARE CURSOR语句,格式如下:
DECLARE <NAME> CURSOR
[LOCAL|GLOBAL] --作用域
[FORWORD_ONLY|SCROLL] --游标移动方向
[STATIC|KEYSET|DYNAMIC|FAST_FORWARD] --游标类型
[READ_ONLY|SCROLL_LOCKS|OPTIMISTIC] --访问属性
[TYPE_WARNING] --类型转换警告
FOR <SELECT ..>
[FOR UPDATE[OF<列名>[,...n]]] --可修改的列
- LOCAL | GLOBAL 分别声明局部, 全局游标。
- FORWORD_ONLY 声明的游标只支持FETCH的NEXT选项,而SCROLL支持NEXT, PRIOR, FIRST, LAST, RELATIVE,ABSOLUTE选项。
- STATIC(静态游标)当游标打开(不是声明)时,将创建该游标使用的数据的临时复本。 对游标的所有请求都从 tempdb 中的这一临时表中得到应答; 因此,在对该游标进行提取操作时返回的数据中不反映对基表所做的修改,并且该游标不允许修改。
- KEYSET(键集驱动游标)当游标