当前位置:Gxlcms > 数据库问题 > SQL Server 【提高】 游标

SQL Server 【提高】 游标

时间:2021-07-01 10:21:17 帮助过:51人阅读

sql语言按照标准处理对象是集合,但有时候也需要针对单行的处理,所以就有了游标,类似C语言的指针一样。

使用方法

创建游标

  1. <span style="color: #0000ff;">declare</span> cursor_name <span style="color: #008080;">--</span><span style="color: #008080;">游标名称,唯一标识</span>
  2. <span style="color: #ff0000;">[</span><span style="color: #ff0000;">insensitive</span><span style="color: #ff0000;">]</span> <span style="color: #ff0000;">[</span><span style="color: #ff0000;">scroll</span><span style="color: #ff0000;">]</span> <span style="color: #0000ff;">cursor</span>
  3. <span style="color: #0000ff;">for</span><span style="color: #000000;">
  4. select_statement </span><span style="color: #008080;">--</span><span style="color: #008080;">查询语句</span>
  5. <span style="color: #ff0000;">[</span><span style="color: #ff0000;">for {read only| update [of column_name [,…n</span><span style="color: #ff0000;">]</span>]}]

read only
设置游标数据只读,指定read only后,对底层表的改动不会更新其游标数据。

示例

 

  1. <span style="color: #0000ff;">drop</span> <span style="color: #0000ff;">table</span> #<span style="color: #0000ff;">temp</span>
  2. <span style="color: #008080;">--</span><span style="color: #008080;">创建游标</span>
  3. <span style="color: #0000ff;">create</span> <span style="color: #0000ff;">table</span> #<span style="color: #0000ff;">temp</span><span style="color: #000000;">(
  4. code </span><span style="color: #0000ff;">varchar</span>(<span style="color: #800000; font-weight: bold;">128</span><span style="color: #000000;">),
  5. name </span><span style="color: #0000ff;">nvarchar</span>(<span style="color: #800000; font-weight: bold;">256</span><span style="color: #000000;">)
  6. )
  7. </span><span style="color: #0000ff;">insert</span> <span style="color: #0000ff;">into</span> #<span style="color: #0000ff;">temp</span> <span style="color: #0000ff;">values</span>(<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">1111</span><span style="color: #ff0000;">‘</span>,<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">aaaa</span><span style="color: #ff0000;">‘</span><span style="color: #000000;">)
  8. </span><span style="color: #0000ff;">insert</span> <span style="color: #0000ff;">into</span> #<span style="color: #0000ff;">temp</span> <span style="color: #0000ff;">values</span>(<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">1112</span><span style="color: #ff0000;">‘</span>,<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">bbbb</span><span style="color: #ff0000;">‘</span><span style="color: #000000;">)
  9. </span><span style="color: #0000ff;">insert</span> <span style="color: #0000ff;">into</span> #<span style="color: #0000ff;">temp</span> <span style="color: #0000ff;">values</span>(<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">1113</span><span style="color: #ff0000;">‘</span>,<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">cccc</span><span style="color: #ff0000;">‘</span><span style="color: #000000;">)
  10. </span><span style="color: #0000ff;">declare</span> cursor_demo scroll <span style="color: #0000ff;">cursor</span>
  11. <span style="color: #0000ff;">for</span>
  12. <span style="color: #0000ff;">select</span> code,name <span style="color: #0000ff;">from</span> #<span style="color: #0000ff;">temp</span> <span style="color: #0000ff;">order</span> <span style="color: #0000ff;">by</span><span style="color: #000000;"> code
  13. </span><span style="color: #008080;">--</span><span style="color: #008080;">打开游标</span>
  14. <span style="color: #0000ff;">open</span><span style="color: #000000;"> cursor_demo
  15. </span><span style="color: #008080;">--</span><span style="color: #008080;">定义变量</span>
  16. <span style="color: #0000ff;">declare</span> <span style="color: #008000;">@code</span> <span style="color: #0000ff;">varchar</span>(<span style="color: #800000; font-weight: bold;">128</span>), <span style="color: #008000;">@name</span> <span style="color: #0000ff;">nvarchar</span>(<span style="color: #800000; font-weight: bold;">256</span><span style="color: #000000;">)
  17. </span><span style="color: #008080;">--</span><span style="color: #008080;">提取最后一行学校信息</span>
  18. <span style="color: #0000ff;">fetch</span> last <span style="color: #0000ff;">from</span> cursor_demo <span style="color: #0000ff;">into</span> <span style="color: #008000;">@code</span>, <span style="color: #008000;">@name</span>
  19. <span style="color: #0000ff;">print</span> <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">code:</span><span style="color: #ff0000;">‘</span> <span style="color: #808080;">+</span> <span style="color: #008000;">@code</span> <span style="color: #808080;">+</span> <span style="color: #ff0000;">‘</span><span style="color: #ff0000;"> name:</span><span style="color: #ff0000;">‘</span> <span style="color: #808080;">+</span> <span style="color: #008000;">@name</span>
  20. <span style="color: #008080;">--</span><span style="color: #008080;">关闭游标</span>
  21. <span style="color: #0000ff;">close</span><span style="color: #000000;"> cursor_demo
  22. </span><span style="color: #008080;">--</span><span style="color: #008080;">释放游标</span>
  23. <span style="color: #0000ff;">deallocate</span> cursor_demo

 

SQL Server 【提高】 游标

标签:sans   inline   对象   span   order   名称   play   dealloc   isp   

人气教程排行