【读书笔记——光标变量——Transact-SQL权威指南】【2011-02-18】

来源:互联网 发布:海军 知乎 编辑:程序博客网 时间:2024/05/16 06:42

光标变量用来存储光标定义的一个引用。由变量定义的光标定义为局部光标(因为不可能定义成全局变量),在一些命令中可以直接用变量来代替光标的引用,如命令OPEN、FETCH、CLOSE及DEALLOCATE。光标变量支持所有的Transact-SQL光标语法,与可修改光标一样,可以定义为只读的。光标变量和光标数据类型与普通的变量和数据类型使用情况大多数都一样,只有三点例外:

1.不可以将表的列定义为光标类型。

2.不可以把光标定义成存储过程的输入参数(但可以定义成输出参数)。

示例:

use practiceDB

GO

CREATE PROC exampleProcForCursor @cursor_input cursor varying out

as

fetch @cursor_input 

while(@@FETCH_STATUS=0)

BEGIN

FETCH @cursor_input 

END

CLOSE @cursor_input 

DEALLOCATE @cursor_input 

GO

DECLARE @c CURSOR

set @c=cursor for select * from name

 

exec exampleProcForCursor @c out

 

3.不可以用SELECT语句给光标变量赋值(必须使用SET命令进行赋值)。

赋值方式:

<1>declare @cursor cursor for  select * from name

 

<2>declare @cursor cursor

set @cursor=cursor  for  select * from name

原创粉丝点击