sql游标循环结果集
我们知道游标是一种对结果集操作的神器,使用游标,可以很方便的循环结果集,并对结果集进行数据处理。
1、建表
CREATE TABLE [dbo].[Student](
[Uid] [INT] IDENTITY(1,1) NOT NULL,
[Name] [NCHAR](10) NULL,
[BirthDay] [DATETIME] NULL,
[Sex] [INT] NULL,
[Age] [INT] NULL,
[demo] [INT] NULL,
CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED
(
[Uid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
2、sql代码实例:
BEGIN
DECLARE @a INT ,
@error INT;
DECLARE @temp VARCHAR(50);
SET @a = 2;
SET @error = 0; --定义一个游标
DECLARE order_cursor CURSOR
--申明游标为Uid
FOR
( SELECT [Uid]
FROM Student
);
--打开游标--
OPEN order_cursor;
--开始循环游标变量--
FETCH NEXT FROM order_cursor INTO @temp;
WHILE @@FETCH_STATUS = 0 --返回被 FETCH语句执行的最后游标的状态--
BEGIN
UPDATE Student
SET Age = 15 + @a ,
demo = @a
WHERE Uid = @temp;
SET @a = @a + 1;
SET @error = @error + @@ERROR; --记录每次运行sql后是否正确,0正确
FETCH NEXT FROM order_cursor INTO @temp; --转到下一个游标,没有会死循环
END;
CLOSE order_cursor; --关闭游标
DEALLOCATE order_cursor; --释放游标
END;
GO
查看表
SELECT * FROM Student;
结果如下

3、实例2
下面是循环插入数据的SQL实例。
declare @orderN varchar(50)--临时变量,用来保存游标值
declare y_curr cursor FOR --申明游标 为orderNum SELECT FContractNo
FROM dbo.v_ContractInfo
WHERE FDate >= '2019-04-01 00:00:000'
AND PayMode = 1
AND Fstatus = 1
AND FranchiseeNo IN ( '', '', '', '', '', '', '' )
AND (WbStatus IS NULL OR WbStatus=0 ) AND FContractNo NOT IN (SELECT OrderNO FROM CF_BookingCheck )
open y_curr --打开游标
fetch next from Y_curr into @orderN ----开始循环游标变量
while(@@fetch_status=0)---返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。 BEGIN
PRINT(@orderN)
INSERT INTO CF_BookingCheck (OrderNO,OverDays,WbStatus,FinanceType,WbChecker,WbCheckDate)VALUES (@orderN,0,3,0,'系统','2019-04-30 00:00:000')
fetch next from y_curr into @orderN --开始循环游标变量
END
close y_curr--关闭游标
deallocate y_curr --释放游标
sql游标循环结果集的更多相关文章
- sql 游标循环当中重新赋值
sql 游标循环当中的变量必须重新赋值不然变量的值就是前次循环的值
- sql 游标循环遍历
写存储过程的时候碰到一个需要对数据进行遍历循环操作的问题,最后通过游标解决了,感觉很适用. declare @level varchar() declare @uid varchar() declar ...
- sql游标循环
DECLARE @begindate DATETIME=CONVERT(DATETIME, '2019.05.06 09:40:50') ,@enddate DATETIME =GETDATE() , ...
- SQL存储过程+游标 循环批量()操作数据
本人收集的,挺有用的 1. 利用游标循环更新.删除MemberAccount表中的数据 DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT * FROM dbo.M ...
- 使用游标循环进行SQL更新插入的SQL语句
使用SQL中的循环,可以实现许多我们需要的操作,比如SQL更新操作.下面就为您介绍使用游标循环进行SQL更新插入的SQL语句写法,希望对您深入学习SQL更新有所帮助. --开始事务 BEGIN TRA ...
- SQL SERVER循环遍历(普通循环和游标循环)
1.首先需要一个测试表数据Student 2.普通循环 1)循环5次来修改学生表信息 --循环遍历修改记录--declare @i int set @i=0while @i<5begin ...
- sql server 存储过程的(包含事务)方法里面,采用游标循环,批量删除(修改)数据
sqlserver 数据库 1.下面是完整的 在存储过程中 使用游标进行 循环删除的实例(包括存储过程中,事务的应用) 2.有问题的话,欢迎随时讨饶我,相信大家看下注释应该就能明白了,很简单的一个,小 ...
- oracle for loop循环以及游标循环
1. for in loop形式 DECLARE CURSOR c_sal IS SELECT employee_id, first_name || last_name ename, salar ...
- PL/SQL游标详解
刚打开游标的时候,是位于一个空行,要用fetch into 才能到第一行. 只是要注意用更新游标的时候,不能在游标期间commit. 否则会报ORA-01002: fetch out of seque ...
随机推荐
- 有单例模式 Singleton 涉及的一些防止类被继承的东西
c#中 : ------------------------------- 当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承. java中: ------------------ ...
- zookeeper简绍
先一句话概括下zookeeper:zookeeper可谓是目前使用最广泛的分布式组件了.其功能和职责单一,但却非常重要. zookeeper到底是什么?(技术文) 1)zookeeper实际上是yah ...
- 一个简单的MVVM雏形
这是@尚春实现的MVVM,使用定时器轮询,只支持{{}}与input.value的修改. 这只能算是一个玩具,真正的MVVM需要有更复杂的扫描机制,JS解析器,双向绑定链什么的. <!DOCTY ...
- JAVA高并发线程
一.JAVA高级并发 1.5JDK之后引入高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程发编程的,充分利用了现代多处理器和多核心系统的功能以编写大规模并发 ...
- c语言静态断言-定义自己的静态断言
c语言里面可以自己定义静态断言,更加方便的调试代码. 使用静态断言 #include<stdio.h> #include<stdlib.h> #include<asser ...
- C#重启IIS
using System.Diagnostics; using System.ServiceProcess; //ServiceController sc1 = new ServiceControll ...
- macOS 安装设置 Tunnelblick (openvpn 替代)
1、下载.安装 2、准备好 openvpn 相关的文件,全部放在一个目录中.主要有以下几个: ca.crt client.crt client.key client.ovpn 3、打开 client. ...
- UI / UX设计师如何玩转用户心理学原理?
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 众所周知,心理学在APP的用户体验设计中起着非常重要的作用.通过了解我们的设计是如何被感知的,我们可 ...
- 中介者模式c#(媒婆版)
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace 中介者模式{ ...
- MySQL redo log及recover过程浅析
写在前面:作者水平有限,欢迎不吝赐教,一切以最新源码为准. InnoDB redo log 首先介绍下Innodb redo log是什么,为什么需要记录redo log,以及redo log的作用都 ...