sql游标循环结果集
我们知道游标是一种对结果集操作的神器,使用游标,可以很方便的循环结果集,并对结果集进行数据处理。
1、建表
1 CREATE TABLE [dbo].[Student]( 2 [Uid] [INT] IDENTITY(1,1) NOT NULL, 3 [Name] [NCHAR](10) NULL, 4 [BirthDay] [DATETIME] NULL, 5 [Sex] [INT] NULL, 6 [Age] [INT] NULL, 7 [demo] [INT] NULL, 8 CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED 9 ( 10 [Uid] ASC 11 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 12 ) ON [PRIMARY]
2、sql代码实例:
1 BEGIN 2 DECLARE @a INT , 3 @error INT; 4 DECLARE @temp VARCHAR(50); 5 SET @a = 2; 6 SET @error = 0; 7 8 --定义一个游标 9 DECLARE order_cursor CURSOR 10 --申明游标为Uid 11 FOR 12 ( SELECT [Uid] 13 FROM Student 14 ); 15 --打开游标-- 16 OPEN order_cursor; 17 --开始循环游标变量-- 18 FETCH NEXT FROM order_cursor INTO @temp; 19 WHILE @@FETCH_STATUS = 0 --返回被 FETCH语句执行的最后游标的状态-- 20 BEGIN 21 UPDATE Student 22 SET Age = 15 + @a , 23 demo = @a 24 WHERE Uid = @temp; 25 SET @a = @a + 1; 26 SET @error = @error + @@ERROR; --记录每次运行sql后是否正确,0正确 27 FETCH NEXT FROM order_cursor INTO @temp; --转到下一个游标,没有会死循环 28 END; 29 CLOSE order_cursor; --关闭游标 30 DEALLOCATE order_cursor; --释放游标 31 END; 32 GO 33
查看表
SELECT * FROM Student;
结果如下
3、实例2
下面是循环插入数据的SQL实例。
1 declare @orderN varchar(50)--临时变量,用来保存游标值 2 declare y_curr cursor FOR --申明游标 为orderNum 3 4 SELECT FContractNo 5 FROM dbo.v_ContractInfo 6 WHERE FDate >= '2019-04-01 00:00:000' 7 AND PayMode = 1 8 AND Fstatus = 1 9 AND FranchiseeNo IN ( '60005', '60007', '60011', '60036', '60070', '60097', '60146' ) 10 AND (WbStatus IS NULL OR WbStatus=0 ) AND FContractNo NOT IN (SELECT OrderNO FROM CF_BookingCheck ) 11 open y_curr --打开游标 12 fetch next from Y_curr into @orderN ----开始循环游标变量 13 while(@@fetch_status=0)---返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。 14 15 BEGIN 16 PRINT(@orderN) 17 INSERT INTO CF_BookingCheck (OrderNO,OverDays,WbStatus,FinanceType,WbChecker,WbCheckDate)VALUES (@orderN,0,3,0,'系统','2019-04-30 00:00:000') 18 fetch next from y_curr into @orderN --开始循环游标变量 19 END 20 close y_curr--关闭游标 21 deallocate y_curr --释放游标
转载于:https://www.cnblogs.com/MirZhai/p/10250786.html
sql游标循环结果集相关推荐
- sql 游标循环(cursor)
说明 游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果.每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理. 游标是处理 ...
- oracle 游标while循环嵌套,oracle游标循环的嵌套
完成批量修改user_tables中的所有表的栏位名(从MS SQL导入过来,发现大小写问题,造成很多麻烦) 存储过程见下: -- Created on 2012/3/14 by FREE decla ...
- sql游标 while_用SQL Server中的排名函数替换SQL While循环和游标,以提高查询性能
sql游标 while SQL While loop and cursor are the most common approach to repeat a statement on conditio ...
- SQL 中循环、for循环、游标
我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加.修改.删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃 ...
- sql 游标_SQL基础丨游标
游标 游标是一个重要的概念,提供了一种灵活的操作方式,可以从数据结果集中每次提取一条数据记录进行操作. 在SQL中,游标是一种临时的数据库对象,可以指向存储在数据库中的数据行指针. 示例 -查询her ...
- mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表
游标 游标(Cursor)是用于查看或者处理结果集中的数据的一种方法.游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力. 游标的使用方式 定义游标:Declare 游标名称 CURSOR ...
- SQL游标原理和使用方法
在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句.但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录.那么如何解决这种问题呢 ...
- sql delete删除两个表_超强干货!SQL语法大合集
本文针对关系型数据库的一般语法.限于篇幅,本文侧重说明用法,不会展开讲解特性.原理. 1 基本概念 数据库术语 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件) 数据表( ...
- SQL游标原理和使用方法(转)
SQL游标原理和使用方法 在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句.但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记 ...
最新文章
- 卷积神经网络之卷积计算、作用与思想 深度学习
- 高退出低留存:六年百万数据透析,想颠覆传统教育的MOOC怎么了?
- Listary-不仅仅是快速检索文件
- mysql免安装数据库用法_MySQL数据库之mysql免安装制作使用说明
- 生日蜡烛——第七届蓝桥杯C语言B组(省赛)第二题
- wdcp 去掉index.php,Nginx环境下Oneindex去除网址内的“?”
- python2x 安装 psutil
- SpringBoot集成Actuator监控管理
- [再学Python] - 4 - 循环
- 利用Calendar类判断是平年还是闰年
- 华为私密相册计算机找回密码,华为手机隐私空间密码忘了怎么办 华为手机隐私空间密码忘了解决方法...
- 中国中央空调行业竞争力策略及未来发展潜力预测报告2021年版
- youtube的使用体会
- 服务器电脑的作用,什么是wins服务器及其作用 -电脑资料
- 软著申请需要多少钱?大概需要多久?
- js和jsp的区别和联系
- S7-1200PLC定时器计数器的应用
- 一个cv大师的摆烂之旅
- 可口可乐市场调查失败的原因_可口可乐公司的市场调查为什么没有起到预期效果?...
- 深信服上网行为管理开启snmp_深信服上网行为管理部署方式及功能实现配置说明...