T-SQL 游标使用

数据库之T_SQL 游标 何谓游标 游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。 游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标可以被看作是一个查询结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结... 阅读详情
使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。
    1. 为何使用游标:
    使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。
    2. 如何使用游标:
    一般地,使用游标都遵循下列的常规步骤:
   (1) 声明游标。把游标与T-SQL语句的结果集联系起来。
   (2) 打开游标。
   (3) 使用游标操作数据。
   (4) 关闭游标。
    2.1. 声明游标
    DECLARE CURSOR语句SQL-92标准语法格式:
    DECLARE 游标名 [ INSENSITIVE ] [ SCROLL ] CURSOR
    FOR  sql-statement
    Eg:
    Declare MycrsrVar  Cursor
    FOR Select *  FROM tbMyData
    2.2  打开游标
    OPEN MycrsrVar
    当游标被打开时,行指针将指向该游标集第1行之前,如果要读取游标集中的第1行数据,必须移动行指针使其指向第1行。就本例而言,可以使用下列操作读取第1行数据:
         FETCH FIRST from E1cursor
         或 FETCH NEXT from E1cursor
    2.3 使用游标操作数据
    下面的示例用@@FETCH_STATUS控制在一个WHILE循环中的游标活动
    /* 使用游标读取数据的操作如下。*/
    DECLARE E1cursor cursor      /* 声明游标,默认为FORWARD_ONLY游标 */
    FOR SELECT * FROM c_example
    OPEN E1cursor                /* 打开游标 */
    FETCH NEXT from E1cursor     /* 读取第1行数据*/
    WHILE @@FETCH_STATUS = 0     /* 用WHILE循环控制游标活动 */
    BEGIN
      FETCH NEXT from E1cursor   /* 在循环体内将读取其余行数据 */
    END
    CLOSE E1cursor               /* 关闭游标 */
    DEALLOCATE E1cursor          /* 删除游标 */
    2.4 关闭游标
    使用CLOSE语句关闭游标
    CLOSE { { [ GLOBAL ] 游标名 } | 游标变量名 }
    使用DEALLOCATE语句删除游标,其语法格式如下:
    DEALLOCATE { { [ GLOBAL ] 游标名 } | @游标变量名
    3.  FETCH操作的简明语法如下:
    FETCH
      [ NEXT | PRIOR | FIRST | LAST]
    FROM
    { 游标名  | @游标变量名 } [ INTO @变量名 [,…] ]
    参数说明:
    NEXT   取下一行的数据,并把下一行作为当前行(递增)。由于打开游标后,行指针是指向该游标第1行之前,所以第一次执行FETCH NEXT操作将取得游标集中的第1行数据。NEXT为默认的游标提取选项。
    INTO @变量名[,…]  把提取操作的列数据放到局部变量中。列表中的各个变量从左到右与游标结果集中的相应列相关联。各变量的数据类型必须与相应的结果列的数据类型匹配或是结果列数据类型所支持的隐性转换。变量的数目必须与游标选择列表中的列的数目一致。
--------------------------------------------------------------
    每执行一个FETCH操作之后,通常都要查看一下全局变量@@FETCH_STATUS中的状态值,以此判断FETCH操作是否成功。该变量有三种状态值:
    ·  0  表示成功执行FETCH语句。
    · -1  表示FETCH语句失败,例如移动行指针使其超出了结果集。
    · -2  表示被提取的行不存在。
    由于@@FETCH_STATU是全局变量,在一个连接上的所有游标都可能影响该变量的值。因此,在执行一条FETCH语句后,必须在对另一游标执行另一FETCH 语句之前测试该变量的值才能作出正确的判断。
T-SQL程序设计与游标设计 Transact-SQL语言极其程序设计的方法; T-SQL游标的使用方法。 立即下载

相关推荐

震坤行:企业 MRO 物料标准化革新之路

那产生这些问题的原因是什么呢?要想解决此问题,企业高层必须下定决心对历史数据进行梳理,并善于利用信息技术,融合企业管理的流程机制,建立起一套适合企业发展的物料标准化管理体系,循序渐进,逐步规避由物料不规范带来的管理问题,最终使得这套标准化体系能够满足企业多元化业务发展需要。国内某电子制造头部企业原先内部物料无对应分类,仅有物料编码,给企业对采购、领料的过程中造成极大的不变,基于震坤行的目录结构,预测物料对应的分类,预测准确率达到80%以上,再辅以人工校正,最终搭建起一套标准的目录体系,如图2.2所示。

carson99的博客 421

数据库------游标的使用

数据库系统概论实验报告八 学号:20191944姓名:张** 专业:软件工程 班级:软件*** 实验名称: 实验八 游标的使用 指导老师: 熊** 撰写日期:2020.12.20 一、实验目的与任务: 掌握使用SQL-92语法和T-SQL扩展声明游标,并理解相关参数含义。 掌握游标的使用过程。 二、实验原理 SQL-92语法和T-SQL扩展声明游标,并理解相关参数含义 三、实验内容 SQL-92语法和T-SQL扩展声明游标,并理解相关参数含义 四、实验步骤 1、声明游标 (1)使用SQL-92语法声明一只进

m0_48538423的博客 862

Vivado静态时序分析学习笔记(1)

静态时序分析分为片内时序分析(寄存器与寄存器之间的时序关系)和片外时序分析(IO时序分析)。(1)建立时间 setup time在时钟事件(上升沿/下降沿)发生之前数据信号应保持稳定的时间。把实际电路抽象成前级D触发器+组合逻辑+后级D触发器。

Fantaasky的博客 4376

Sql 游标使用

使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果 往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。 1. 为何使用游标: 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。...

weixin_30690833的博客 112

Vue3多级路由缓存失效的深度解析与实战解决方案

本文深度解析了Vue3项目中多级路由下keep-alive缓存失效的根本原因,并提供了三种实战解决方案:通过路由扁平化根治问题、利用状态管理精细模拟缓存效果,以及借助keep-alive-vue3插件快速修复。文章旨在帮助开发者彻底理解Vue Router与keep-alive的协作机制,从而根据项目情况选择最佳策略,有效解决页面状态丢失的难题。

weixin_29015801的博客 285

文石NoteX3国行版安装 Google Play经验分享

文石NoteX3国行版安装 Google Play经验分享。

2301_80693261的博客 7599

SQL Cursor(游标) 基本用法[用两次FETCH NEXT FROM INTO语句?]

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 table1结构如下 id int name varchar(50) declare @id int declare @name varchar(50) declare cursor...

u011265702的博客 1万+

在Wincc8.0的Wincc 3D Control控件中使用3D模型

如果之前没有在Blender中自定义光照,EnableBackground属性选择“是”,Wincc 3D Control会按一个均匀的光照强度渲染。Wincc8.0更新后提供了一个Wincc 3D Control控件来显示3D图像,但是该控件实际体验下来现阶段还存在功能不足、运行不稳定的问题。再把导出的dae文件复制进Wincc项目的GraCS文件夹中,文件名称复制进控件的SceneFile属性里。选择编辑模式,全选模型,点击网格→分离→按材质,分离出不同的部件(不同的部件最好使用不同的材质)。

ghoring的博客 7131

T-SQL游标

T-SQL游标   游标是面向行的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能。  在性能上,游标会迟更多的内存,减少可用的并发,占用带宽,锁定资源,当然还有更多的代码量。  用一个比喻来说明为什么游标会占用更多的资源。当你从ATM机取款的时候,是...

ajwqb06628的专栏 322

开源大模型推理GPU资源评估以及优化

随着大模型的火热很多项目中都使用到了开源大模型,这时候准确评估大模型的GPU资源非常重要,主要有下面几个方面:GPU是昂贵的资源。高估内存需求可能导致在硬件上的不必要支出,而低估则可能导致系统故障或性能下降。:适当的内存管理确保模型高效运行,能够更快地响应用户并处理更多并发请求。:随着需求的增长,理解内存需求对于在不牺牲性能或产生高昂成本的情况下扩展服务至关重要。尽管其重要性显而易见,但计算用于服务大型语言模型(LLM)的GPU内存并不简单。

优快云DN的博客 3116

Windows 11 安装 MySQL 8.4:安装包方式、下载、安装、使用

本文详细介绍了在 Windows 11 系统下通过 MSI 安装包方式安装 MySQL 8.4 LTS 社区版的完整流程,包括版本选择、下载、自定义安装路径、服务配置、日志设置、示例数据库创建及后续使用方法。同时提供了命令行客户端与图形化工具 DBeaver 的连接与操作演示,适合初学者和开发者快速搭建本地 MySQL 开发环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 2260

T-SQL 游标

T-SQL 游标   游标是面向行的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能。  在性能上,游标会迟更多的内存,减少可用的并发,占用带宽,锁定资源,当然还有更多的代码量。  用一个比喻来说明为什么游标会占用更多的资源。当你从ATM机取款...

165

通过实例讲解瀑布模型

在电子商城开发中,瀑布模型如同 “工业时代的流水线”—— 能通过标准化流程交付高质量、高合规性的系统,但也可能因缺乏灵活性而错失市场机会。其优势与缺点本质上源于同一核心特征:严格的阶段性与文档驱动。决策建议若开发传统型、长周期、需求固定的电子商城(如企业内部采购平台),可优先选择瀑布模型,并通过 “需求预验证 + 模块化设计” 降低风险;若开发创新型、短周期、需快速迭代的电商平台(如社交电商、跨境电商),建议采用敏捷模型或混合模型(如瀑布 + Scrum),平衡规范性与响应速度。

跟佟格湾一起学习计算机知识吧~ 271

T-SQL 游标的使用

游标类似于java中的循环操作。1.定义一个游标 游标其实可以理解成一个定义在特定数据集上的指针,我们可以控制这个指针遍历数据集,或者仅仅是指向特定的行,所以游标是定义在以Select开始的数据集上的: T-SQL中的游标定义在MSDN中如下: DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ] [ FORWARD_ONLY | SCR

洋葱花瓣的专栏 3316

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

T-SQL游标学习总结

T-SQL查询进阶-10分钟理解游标 http://www.cnblogs.com/CareySon/archive/2011/11/01/2231381.html 概述        在关系数据库中,我们对于查询的思考是面向集合的。而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服。        正常面向集合的思维方

bcbobo21cn的专栏 1646

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

sql T_sql 之 游标的使用

<br />在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句。但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案。<br />下面介绍下关于游标的使用:<br />declare @str varchar(600)<br />declare @i varchar(700)<br />set @str=''<br />declare cur cursorfor--声明一个

专注sharepoint,O365,BI大数据设计与开发 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

T-SQL 语句(九)—— 游标

T-SQL 语句(九)—— 游标一、游标简介  游标主要用于 T-SQL 批、存储过程以及触发器当中,其作用是存储一个结果集,并能通过循环将这个结果集里的数据一条条取出来进行处理。使用游标处理结果集的方法有:  1、定位到结果集的某一行;  2、从当前结果集的位置搜索一行或部分行;  3、允许对结果集中的当前行进行数据修改。 游标根据使用范围不同可以分为全局游标和局部

wuxinwudai的专栏 5359

T-SQL游标使用

<br /><br />使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中, 且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。<br />1.为何使用游标:<br />        使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个

至简 3291

T-SQL编程基础-游标

游标相当于c++中的指针。通过游标,我们可以在数据库中对数据行集合进行操作。 1.创建游标 过程: a.声明游标: 声明游标的语法有两种,一种是基于SQL-92标准的语法形式,另一种是扩展的T-SQL语法形式,两种方式不可混用。 基于SQL-92标准形式: DECLAREcursor_name[INSENSITIVE][SCROLL]CURSOR FORselect_stat...

weixin_30372371的博客 554

T_SQL编程中游标的使用以及循环多次的问题

在做一个数据库实训题目的时候碰到了这个问题,首先来看一下题目 依次读出 student 表中的数据,判断是否为男生,如果是,就在 sc 表中将其 所有的选课成绩上浮 10%这是Student表 这是SC表 首先这个用简单的sql语句很好作答 直接嵌套就ok了,看SC表成功修改 但是有点不符合题意,题目说是依次读出 student 表中的数据,判断是否为男生,这里没有实现依次和判断,老师目的是让我们做Tsql编程来做,所以换了一种思路,使用游标来做先把SC表还原 看一下游标的用法 这个网上的示例是游标指向sk

mengyuan9的博客 627

T-SQL 之 游标

  游标是面向行的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能。  在性能上,游标会占有更多的内存,减少可用的并发,占用带宽,锁定资源,当然还有更多的代码量。  用一个比喻来说明为什么游标会占用更多的资源。当你从ATM机取款的时候,是一次取1000的效率更高呢,还是10次100呢? 一、创建游标   由于以下两点原因,需要熟悉游标:   [1] 现存系统有一些游标,我们查询...

weixin_30559481的博客 84

数据库原理——T-SQL、游标

T-SQL语言简介 T-SQL简介及基本语法 变量 1,局部变量:变量名前加@ 2, T-SQL控制流程语句:

weixin_43840032的博客 1702
上一篇: 小软件获取QQ好友是否"隐身对你可见".net版
下一篇: Oracle数据类型
普通网友
博客等级 码龄17年 16粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值