游标概念:

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 游标(只进游标)讲解相关推荐

  1. SQL Server 中的身份认证讲解

    SQL Server 中的身份认证讲解TIME:2009-4-22   |   READ:228 Microsoft® SQL Server™ 可以在两种安全(身份验证)模式之一下工作: Window ...

  2. 【java毕业设计】基于java+Eclipse +SQL Server的工厂进销存管理系统设计与实现(毕业论文+程序源码)——工厂进销存管理系统

    基于java+Eclipse +SQL Server的工厂进销存管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Eclipse +SQL Server的工厂进销存管理系统 ...

  3. MS SQL Server数据库原理

    MS SQL Server数据库原理 一. 数据库基本概念 数据库系统(DBS):采用数据库技术的计算机系统,由数据库(数据).数据库管理系统(软件).数据库管理员(人员).硬件平台(硬件)和软件平台 ...

  4. 数据库原理与应用(SQL Server)笔记 第十一章 游标

    目录 前言 一.游标的定义 二.游标的声明 三.游标的打开 四.游标的使用 五.游标的关闭 六.游标的删除 七.静态游标和动态游标 结语 前言 本章内容将从六个方面介绍关于游标的知识,分别是其定义.声 ...

  5. sql server 中游标详解

    目录 游标的定义 种类:(我也不太理解,有理解的@我) 游标的类型: 游标的实现 游标的实现功能 游标的使用的步骤: 游标的使用: 1.声明游标 游标的格式:(看了很多版本的格式说明, 这是最好理解的 ...

  6. SQL SERVER游标浅析

    1. 定义游标定义 游标语句的核心是定义了一个游标标识名,并把游标标识名和一个查询语句关联起来.DECLARE语句用于声明游标,它通过SELECT查询定义游标存储的数据集合.语句格式为: DECLAR ...

  7. SQL Server基础操作(此随笔仅作为本人学习进度记录九!--游标)

    游标就是存储结果集,将从指定表中查询出符合条件的记录,组成了结果集,然后把它存到游标当中,如果要显示游标中的哪一条记录游标(游动的标识) !!!!非常重要的知识点,比较难理解!!!游标提供了对表中的数 ...

  8. SQL Server 数据库的维护(四)__游标(cursor)

    --维护数据库-- --游标(cursor)-- --概述: 注:使用select语句查询结果的结果集是一个整体,如果想每次处理一行或一部分行数据,游标可以提供这种处理机制.可以将游标理解为指针.指针 ...

  9. 使用游标正确提取SQL Server数据并将其放置在Reporting Services矩阵中

    介绍 ( Introduction ) In our last two chats, we discussed enterprises that have had financial years th ...

最新文章

  1. 分离颜色通道(split)和多通道融合(merge)
  2. android 文字控件闪烁
  3. Oracle 分组统计,抽取每组前十
  4. 作为IT面试官,我如何考核计算机专业毕业生?作为培训班老师,我又如何提升他们?...
  5. 这本造价500万的“黑科技”日历,用377张爆美插画给你365天理想生活
  6. 电商系统设计之商品 (下)
  7. 详细说明自学Python需要具备什么?
  8. oracle ora27072,ORA-27072: skgfdisp
  9. 手机HiFi嗨不嗨 看完这些才能算是入坑
  10. Mac安装brew,安装wget
  11. ORA-20001: APP-SQLAP-10000: ORA-28115: policy with check option violation occurred
  12. 《伸手系列》之arm架构服务器安装kubernetes
  13. java 代码块 构造函数_Java学习笔记之------构造函数,静态关键字,静态代码块,构造代...
  14. spark.reducer.maxReqsInFlight和spark.reducer.maxBlocksInFlightPerAddress
  15. 儿子于靖洋15个月照片
  16. ubuntu和windows之间实现复制粘贴
  17. 【转】模仿绘画风格的算法:A Neural Algorithm of Artistic Style
  18. ProcessOn在线画流程图介绍
  19. Qt 动画飞舞的蝴蝶源码
  20. 服务器安装内置无线网卡,笔记本怎么安装内置网卡 笔记本内置无线网卡安装步骤【图文】...

热门文章

  1. AVG 杀毒软件2013中文版下载-来自捷克支持win8的免费杀毒软件
  2. 计算机类实用新型专利,计算机机箱小物件类职称用实用新型专利办理评职称专...
  3. CSDN 博客备份工具
  4. 遭遇Viking新变种 传奇 魔兽盗号木马等 第3版
  5. Docker容器内无法解析域名:Temporary failure in name resolution
  6. 应用网站微信扫码登录处理逻辑解析
  7. 动态规划和回溯法的异同
  8. Open JDK 8.0_152-b16 崩溃 : [libzip.so+0x12522] newEntry+0x62
  9. visual studio 2019恢复默认设置
  10. win10蓝牙已配对安卓手机但连接不上 完美解决方法