SQL server 游标(只进游标)讲解
游标概念:
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 游标(只进游标)讲解相关推荐
- SQL Server 中的身份认证讲解
SQL Server 中的身份认证讲解TIME:2009-4-22 | READ:228 Microsoft® SQL Server™ 可以在两种安全(身份验证)模式之一下工作: Window ...
- 【java毕业设计】基于java+Eclipse +SQL Server的工厂进销存管理系统设计与实现(毕业论文+程序源码)——工厂进销存管理系统
基于java+Eclipse +SQL Server的工厂进销存管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Eclipse +SQL Server的工厂进销存管理系统 ...
- MS SQL Server数据库原理
MS SQL Server数据库原理 一. 数据库基本概念 数据库系统(DBS):采用数据库技术的计算机系统,由数据库(数据).数据库管理系统(软件).数据库管理员(人员).硬件平台(硬件)和软件平台 ...
- 数据库原理与应用(SQL Server)笔记 第十一章 游标
目录 前言 一.游标的定义 二.游标的声明 三.游标的打开 四.游标的使用 五.游标的关闭 六.游标的删除 七.静态游标和动态游标 结语 前言 本章内容将从六个方面介绍关于游标的知识,分别是其定义.声 ...
- sql server 中游标详解
目录 游标的定义 种类:(我也不太理解,有理解的@我) 游标的类型: 游标的实现 游标的实现功能 游标的使用的步骤: 游标的使用: 1.声明游标 游标的格式:(看了很多版本的格式说明, 这是最好理解的 ...
- SQL SERVER游标浅析
1. 定义游标定义 游标语句的核心是定义了一个游标标识名,并把游标标识名和一个查询语句关联起来.DECLARE语句用于声明游标,它通过SELECT查询定义游标存储的数据集合.语句格式为: DECLAR ...
- SQL Server基础操作(此随笔仅作为本人学习进度记录九!--游标)
游标就是存储结果集,将从指定表中查询出符合条件的记录,组成了结果集,然后把它存到游标当中,如果要显示游标中的哪一条记录游标(游动的标识) !!!!非常重要的知识点,比较难理解!!!游标提供了对表中的数 ...
- SQL Server 数据库的维护(四)__游标(cursor)
--维护数据库-- --游标(cursor)-- --概述: 注:使用select语句查询结果的结果集是一个整体,如果想每次处理一行或一部分行数据,游标可以提供这种处理机制.可以将游标理解为指针.指针 ...
- 使用游标正确提取SQL Server数据并将其放置在Reporting Services矩阵中
介绍 ( Introduction ) In our last two chats, we discussed enterprises that have had financial years th ...
最新文章
- 分离颜色通道(split)和多通道融合(merge)
- android 文字控件闪烁
- Oracle 分组统计,抽取每组前十
- 作为IT面试官,我如何考核计算机专业毕业生?作为培训班老师,我又如何提升他们?...
- 这本造价500万的“黑科技”日历,用377张爆美插画给你365天理想生活
- 电商系统设计之商品 (下)
- 详细说明自学Python需要具备什么?
- oracle ora27072,ORA-27072: skgfdisp
- 手机HiFi嗨不嗨 看完这些才能算是入坑
- Mac安装brew,安装wget
- ORA-20001: APP-SQLAP-10000: ORA-28115: policy with check option violation occurred
- 《伸手系列》之arm架构服务器安装kubernetes
- java 代码块 构造函数_Java学习笔记之------构造函数,静态关键字,静态代码块,构造代...
- spark.reducer.maxReqsInFlight和spark.reducer.maxBlocksInFlightPerAddress
- 儿子于靖洋15个月照片
- ubuntu和windows之间实现复制粘贴
- 【转】模仿绘画风格的算法:A Neural Algorithm of Artistic Style
- ProcessOn在线画流程图介绍
- Qt 动画飞舞的蝴蝶源码
- 服务器安装内置无线网卡,笔记本怎么安装内置网卡 笔记本内置无线网卡安装步骤【图文】...
热门文章
- AVG 杀毒软件2013中文版下载-来自捷克支持win8的免费杀毒软件
- 计算机类实用新型专利,计算机机箱小物件类职称用实用新型专利办理评职称专...
- CSDN 博客备份工具
- 遭遇Viking新变种 传奇 魔兽盗号木马等 第3版
- Docker容器内无法解析域名:Temporary failure in name resolution
- 应用网站微信扫码登录处理逻辑解析
- 动态规划和回溯法的异同
- Open JDK 8.0_152-b16 崩溃 : [libzip.so+0x12522] newEntry+0x62
- visual studio 2019恢复默认设置
- win10蓝牙已配对安卓手机但连接不上 完美解决方法