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 }