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

光标变量用来存储光标定义的一个引用。由变量定义的光标定义为局部光标(因为不可能定义成全局变量),在一些命令中可以直接用变量来代替光标的引用,如命令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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值