我们知道游标是一种对结果集操作的神器,使用游标,可以很方便的循环结果集,并对结果集进行数据处理。

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游标循环结果集的更多相关文章

  1. sql 游标循环当中重新赋值

    sql 游标循环当中的变量必须重新赋值不然变量的值就是前次循环的值

  2. sql 游标循环遍历

    写存储过程的时候碰到一个需要对数据进行遍历循环操作的问题,最后通过游标解决了,感觉很适用. declare @level varchar() declare @uid varchar() declar ...

  3. sql游标循环

    DECLARE @begindate DATETIME=CONVERT(DATETIME, '2019.05.06 09:40:50') ,@enddate DATETIME =GETDATE() , ...

  4. SQL存储过程+游标 循环批量()操作数据

    本人收集的,挺有用的 1. 利用游标循环更新.删除MemberAccount表中的数据 DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT * FROM dbo.M ...

  5. 使用游标循环进行SQL更新插入的SQL语句

    使用SQL中的循环,可以实现许多我们需要的操作,比如SQL更新操作.下面就为您介绍使用游标循环进行SQL更新插入的SQL语句写法,希望对您深入学习SQL更新有所帮助. --开始事务 BEGIN TRA ...

  6. SQL SERVER循环遍历(普通循环和游标循环)

    1.首先需要一个测试表数据Student 2.普通循环 1)循环5次来修改学生表信息 --循环遍历修改记录--declare @i int   set @i=0while @i<5begin   ...

  7. sql server 存储过程的(包含事务)方法里面,采用游标循环,批量删除(修改)数据

    sqlserver 数据库 1.下面是完整的 在存储过程中 使用游标进行 循环删除的实例(包括存储过程中,事务的应用) 2.有问题的话,欢迎随时讨饶我,相信大家看下注释应该就能明白了,很简单的一个,小 ...

  8. oracle for loop循环以及游标循环

    1. for in loop形式 DECLARE    CURSOR c_sal IS SELECT employee_id, first_name || last_name ename, salar ...

  9. PL/SQL游标详解

    刚打开游标的时候,是位于一个空行,要用fetch into 才能到第一行. 只是要注意用更新游标的时候,不能在游标期间commit. 否则会报ORA-01002: fetch out of seque ...

随机推荐

  1. 有单例模式 Singleton 涉及的一些防止类被继承的东西

    c#中 : ------------------------------- 当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承. java中: ------------------ ...

  2. zookeeper简绍

    先一句话概括下zookeeper:zookeeper可谓是目前使用最广泛的分布式组件了.其功能和职责单一,但却非常重要. zookeeper到底是什么?(技术文) 1)zookeeper实际上是yah ...

  3. 一个简单的MVVM雏形

    这是@尚春实现的MVVM,使用定时器轮询,只支持{{}}与input.value的修改. 这只能算是一个玩具,真正的MVVM需要有更复杂的扫描机制,JS解析器,双向绑定链什么的. <!DOCTY ...

  4. JAVA高并发线程

    一.JAVA高级并发 1.5JDK之后引入高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程发编程的,充分利用了现代多处理器和多核心系统的功能以编写大规模并发 ...

  5. c语言静态断言-定义自己的静态断言

    c语言里面可以自己定义静态断言,更加方便的调试代码. 使用静态断言 #include<stdio.h> #include<stdlib.h> #include<asser ...

  6. C#重启IIS

    using System.Diagnostics; using System.ServiceProcess; //ServiceController sc1 = new ServiceControll ...

  7. macOS 安装设置 Tunnelblick (openvpn 替代)

    1、下载.安装 2、准备好 openvpn 相关的文件,全部放在一个目录中.主要有以下几个: ca.crt client.crt client.key client.ovpn 3、打开 client. ...

  8. UI / UX设计师如何玩转用户心理学原理?

    以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 众所周知,心理学在APP的用户体验设计中起着非常重要的作用.通过了解我们的设计是如何被感知的,我们可 ...

  9. 中介者模式c#(媒婆版)

    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace 中介者模式{  ...

  10. MySQL redo log及recover过程浅析

    写在前面:作者水平有限,欢迎不吝赐教,一切以最新源码为准. InnoDB redo log 首先介绍下Innodb redo log是什么,为什么需要记录redo log,以及redo log的作用都 ...