SQLServer游标的用法

DECLARE TEMP_CURSOR CURSOR SCROLL FOR
    SELECT CityName FROM CoreLinkLinShi -- 此处必须有Sql语句,不能空着
    
    OPEN TEMP_CURSOR
    DECLARE @CityName varchar(50)
    
    FETCH NEXT FROM TEMP_CURSOR INTO @CityName
    WHILE @@FETCH_STATUS=0
    BEGIN
        DECLARE @VALIDTIME VARCHAR(19),@ENDTIME VARCHAR(19)
        SET @VALIDTIME=CONVERT(CHAR(10),GETDATE(),23)+‘ 00:00:00‘
        SET @ENDTIME=CONVERT(CHAR(10),DATEADD(DAY,1,GETDATE()),23)+‘ 00:00:00‘
        WHILE(CONVERT(DATETIME,@VALIDTIME) < CONVERT(DATETIME,@ENDTIME))
        BEGIN
            INSERT INTO dbo.CoreLink_temp(CityName,CompanyNo,SvrID,NeID,NeName,Slot,BoardName,Port,ValidTime)
                        VALUES(@CityName,@CompanyNo,@SvrID,@NeID,@NeName,@Slot,@BoardName,@Port,@VALIDTIME)
            SET @VALIDTIME= CONVERT(CHAR(19),DATEADD(MI,15,CONVERT(DATETIME,@VALIDTIME)),120)
        END        
        FETCH NEXT FROM TEMP_CURSOR INTO @CityName
    END
    
    CLOSE TEMP_CURSOR
    DEALLOCATE TEMP_CURSOR
时间: 2024-10-09 10:13:59

SQLServer游标的用法的相关文章

游标基础用法

Create PROCEDURE P_InsertSubject@SubjectId intASDECLARE rs CURSOR LOCAL SCROLL FORselect studentid from student where StudentGradu = 1OPEN rsFETCH NEXT FROM rs INTO @tempStudentIDWHILE @@FETCH_STATUS = 0BEGINInsert SelSubject values (@SubjectId,@temp

Sql server存储过程中常见游标循环用法

原文:Sql server存储过程中常见游标循环用法 用游标,和WHILE可以遍历您的查询中的每一条记录并将要求的字段传给变量进行相应的处理 DECLARE @A1 VARCHAR(10), @A2 VARCHAR(10), @A3 INT DECLARE YOUCURNAME CURSOR FOR SELECT A1,A2,A3 FROM YOUTABLENAME OPEN YOUCURNAME fetch next from youcurname into @a1,@a2,@a3 while

Sqlserver游标复习

经常写存储过程,但今天在游标使用过程中还是疏忽了一些事情,执行过程中一直执行不下去,后来直接sqlserver挂了,教训啊! 代码虽简单,望铭记: Create PROCEDURE [dbo].[temphxb] AS BEGIN declare @uid int declare mycursortemp Cursor for select uid from temptable1 where Indate>'2015-05-21' and type='1' group by uid having

sqlserver游标+延迟执行简介

在项目测试中,我们可能会使用批量生成数据来测试程序的性能. 这里讲一个我遇到的问题,由于我们批量生成数据时基本上是瞬间完成,所以GETDATE()函数获得的时间基本上也是一样的,而我们又要求生成每条数据的时间不同,那么如何来解决这个问题? 网上搜索了很多,这里我是使用游标+waitfor来处理的: 首先来讲下游标,因为个人也是才使用游标,而且也没有深入研究. 那么游标是用来干什么的呢?一般我们使用游标是用来对查询出来的结果集进行处理的(修改,新增...). T-SQL中的游标定义在MSDN中如下

mysql游标的用法及作用

1当前有三张表A.B.C其中A和B是一对多关系,B和C是一对多关系,现在需要将B中A表的主键存到C中:常规思路就是将B中查询出来然后通过一个update语句来更新C表就可以了,但是B表中有2000多条数据,难道要执行2000多次?显然是不现实的:最终找到写一个存储过程然后通过循环来更新C表,然而存储过程中的写法用的就是游标的形式. [简介] 游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制. 游标充当指针的作用. 尽管游标能遍历结果中的所有行,但他一次只指向一行. 游标的作用

sqlserver游标概念与实例全面解说

引言 我们先不讲游标的什么概念,步骤及语法,先来看一个例子:   ?????? 表一 OriginSalary??????????????????????????????????????????????????? 表二 AddSalary 现在有2张表,一张是OriginSalary表--工资表,有三个字段0_ID 员工号(NVARCHAR).O_Name员工姓名(NVARCHAR).O_Salary工资(FLOAT). 另一张表AddSalary表-加薪表.有2个字段,O_ID员工号.A_Sa

sqlserver 游标的使用

举个栗子: -- 临时变量 DECLARE @Id UNIQUEIDENTIFIER -- 声明游标名 DECLARE cursor_name CURSOR FOR SELECT ID from COM_DataDictionaryInfo -- 打开游标 OPEN cursor_name -- 先查询一次再循环,防止有多个游标时@@FETCH_STATUS=-1不能进入下个游标循环的情况 FETCH NEXT FROM cursor_name into @Id -- 循环取数据 WHILE @

SQLserver游标原理和使用方法

在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句.但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录.那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案. 1.1 游标和游标的优点 在数据库中,游标是一个十分重要的概念.游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制.游标总是与一条T_SQL 选择语句相关联因为游标由结果集

SqlServer游标简介

游标实例:             Declare MyCusror Cursor Scroll For Select * From Master_Goods Order By GoodsID Open MyCursor Fetch next From MyCursor             Into @GoodsCode,@GoodsName While(@@Fetch_Status = 0) Begin Begin    Select @GoodsCode = Convert(Char(2