sql 游标(理论)

  • 2020 年 8 月 26 日
  • 筆記
游标是处理结果集的一种机制
--声明游标
--ISO 语法
DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR 
     FOR select_statement 
     [ FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ][;]

--Transact-SQL 扩展语法
DECLARE cursor_name CURSOR
     [ LOCAL | GLOBAL ]    --游标作用域
     [ FORWARD_ONLY | SCROLL ]   --游标移动方向
     [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]   --游标类型
     [ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]    --访问属性
     [ TYPE_WARNING ]    --类型转换警告信息
     FOR select_statement      --select查询语句
     [ FOR UPDATE [ OF column_name [ ,...n ] ] ][;]  --可修改的列

--打开游标语法
OPEN { { [ GLOBAL ]  cursor_name }  |  cursor_variable_name}

--读取数据
FETCH 
[  
    [ NEXT | PRIOR | FIRST | LAST | ABSOLUTE { n | @nvar } | RELATIVE { n | @nvar } ] FROM 
] 
{ { [ GLOBAL ] cursor_name } | @cursor_variable_name } 
[ INTO @variable_name [ ,...n ] ] --into 将读取的游标数据存放到指定的变量中

 关闭&删除游标

--关闭游标
CLOSE { { [ GLOBAL ] cursor_name } | @cursor_variable_name }
--删除游标
DEALLOCATE { { [ GLOBAL ] cursor_name } |  @cursor_variable_name }