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

    技术2026-05-22  11

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

    最新回复(0)