SQL server 游标(只进游标)讲解

编程知识 更新时间:2023-04-05 14:11:55

游标概念:

SQL的游标是一种临时的数据库对象,既可以存放储存在数据库表中数据行的副本,也可以指向储存在数据库中的数据行的指针,游标提供了在逐行的基础上操作表中数据的方法。

游标的作用:

1.定位到结果集中的某一行;

2.对当前位置的数据进行读写;

3.保存查询结果,以便下次有需要查询时使用,游标的结果集是有select 语句产生,如果处理过程中需要重复使用一个记录集,那么创建一次游标而重复使用若干次,比重复查询数据库要快得多。

游标的生命五大周期-:

1.声明游标

declare People_cursor  cursor  local --局部 ,global 全局游标 

for 
--查询  T-SQL
SELECT  PepoleID, DepartmentId, PepoleName ,PepoleAddress from dbo.People
where PepoleID >10

2.打开游标

open People_cursor

3.提取数据  

    fetch next from @varpepole into  @PepoleID  ,@DepartmentId  , @PepoleName ,@PepoleAddress --into 赋值
     while @@FETCH_STATUS = 0 --等于 0 或者等于 1 判断是否成功
begin 
     print cast(@PepoleID as varchar) + ','+ convert(varchar,@DepartmentId)+@PepoleName+','+@PepoleAddress;

   fetch next from  @varpepole into  @PepoleID  ,@DepartmentId  , @PepoleName ,@PepoleAddress 
    end

4.关闭游标

close  People_cursor (游标名称)

5.释放游标

deallocate People_cursor(游标名称)

只进游标:

特点: 只进游标不支持滚动,支持从头到尾提取数据,数据库执行增删改,在提取时是可见的,但由于该游标只能进不能向后滚动,所以在行提取后对行做增删改是不可见的

案例:

fetch next from @varpepole into  @PepoleID  ,@DepartmentId  , @PepoleName ,@PepoleAddress --into 赋值   (提取数据 fetch 语法)
while @@FETCH_STATUS = 0 --等于 0 或者等于 1 判断是否成功
begin 
     print cast(@PepoleID as varchar) + ','+ convert(varchar,@DepartmentId)+@PepoleName+','+@PepoleAddress;
   if @PepoleID  = 10
          update dbo.People set PepolePhone = 11111 where PepoleID  = 12
      if @PepoleID  = 12
          update dbo.People set PepolePhone = 222222 where PepoleID  = 10 
     fetch next from  @varpepole into  @PepoleID  ,@DepartmentId  , @PepoleName ,@PepoleAddress 
    end

 

 从两个 if 语句可以看到 受影响的列为 提取时,提取后的结果是看不见的,为什么我的查询结果都没有看见 没因为 我没有把  PepolePhone 设置为获取游标值,如果设置了就可以明显看到数据更新显示上的差异

总结:

  • Local:作用域为局部,只在定义它的批处理,存储过程或触发器中有效。
  • Global:作用域为全局,由连接执行的任何存储过程或批处理中,都可以引用该游标。
  • @@FETCH_STATUS: 返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。

@@FETCH_STATUS = 0 /1/2

0 FETCH 语句成功。
-1 FETCH 语句失败或此行不在结果集中。
-2 被提取的行不存在

本文部分存在转载,主要目的:解决学术问题,为学习用户提供更为精准,便于理解的概念与方法,如果有侵权,请联系删除 

更多推荐

SQL server 游标(只进游标)讲解

本文发布于:2023-04-05 14:11:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/8086b43e254a2408c399bf4928b4a5cf.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:游标   SQL   server

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 46485文章数
  • 14阅读数
  • 0评论数