一、第一种方法,游标

定义游标 DECLARE cur_ClubHeadCash CURSOR FAST_FORWARD READ_ONLY FOR,循环每行 FETCH NEXT FROM cur_ClubHeadCash INTO @intUserID, @Clubid, @Amount

DECLARE @intUserID INT,@Amount INT, @Clubid INT,@AmountTmp INT

DECLARE cur_ClubHeadCash CURSOR FAST_FORWARD READ_ONLY FOR
SELECT userid,cid,cash FROM #temp WHERE userid not in(1000882) ORDER BY userid ASC OPEN cur_ClubHeadCash
FETCH NEXT FROM cur_ClubHeadCash INTO @intUserID, @Clubid, @Amount WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @intUserID
PRINT @Clubid
PRINT @Amount SET @AmountTmp= @Amount*-1
PRINT @AmountTmp --EXEC dbo.PrPsWeb_UpdateClubCash
-- @Clubid,
-- 13001,
-- @AmountTmp,
-- '127.0.0.1',
-- '管理员减少房卡',
-- NULL,
-- 0 --EXEC dbo.PrPsWeb_UpdateUserCash
-- @intUserID,
-- 13000,
-- @Amount,
-- '127.0.0.1',
-- '管理员增加金币',
-- NULL,
-- 0 FETCH NEXT FROM cur_ClubHeadCash INTO @intUserID,@Clubid,@Amount END CLOSE cur_ClubHeadCash
DEALLOCATE cur_ClubHeadCash DROP TABLE #temp

二、第二种方法,while循环

获取需处理表的所有行以及行号,取最小行号min和最大行号max,进行循环

DECLARE @intMinId INT,@intMaxId INT,@intClubID INT,@lngUpdateAmount BIGINT

SELECT RowID=IDENTITY(INT,1,1),A.ClubID,A.NeedAmount
INTO #templist
FROM Game.UserCreateClubDesk AS A WHERE A.ServerID=@intServerID SELECT @intMinId =MIN(RowID),@intMaxId=MAX(RowID)
FROM #templist WHILE @intMinId<=@intMaxId
BEGIN
SELECT @intClubID=ClubID,@lngUpdateAmount=NeedAmount
FROM #templist WHERE RowID=@intMinId
EXEC dbo.PrPsWeb_UpdateClubCash
@intClubID,
@sintSourceType,
@lngUpdateAmount,
'127.0.0.1',
@chvMemo,
NULL,
0
SET @intMinId=@intMinId+1
END
DROP TABLE #templist

SQL中循环的实现方式的更多相关文章

  1. SQL中循环和条件语句

    .if语句使用示例: declare @a int begin print @a end else begin print 'no' end .while语句使用示例: declare @i int ...

  2. sql中循环的存储过程

    ), a2 bigint, a3 bigint) returns void as $$declare ii integer; begin II:; FOR ii IN a2..a3 LOOP INSE ...

  3. react中循环节点的方式以及图片引用的方式

    import React from 'react' import img from '../public/img/001.jpg' // 此时img是一个变量,在下面直接使用该变量即可引入该图片 cl ...

  4. sql中循环插入

    #!/bin/sh for i in {1..10}dokdsql sys/kdb<<EOF insert into test values(2) ; EOFdone

  5. SQL中的循环、for循环、游标

    我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加.修改.删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃 ...

  6. PL/SQL中LOOP循环控制语句

    在PL/SQL中可以使用LOOP语句对数据进行循环处理,利用该语句可以循环执行指定的语句序列.常用的LOOP循环语句包含3种形式:基本的LOOP.WHILE...LOOP和FOR...LOOP. LO ...

  7. (转)SQL中的循环、for循环、游标

    我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加.修改.删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃 ...

  8. Oracle中PL/SQL的循环语句

    在PL/SQL中可以使用LOOP语句对数据进行循环处理,利用该语句可以循环执行指定的语句序列.常用的LOOP循环语句包含3种形式:基本的LOOP.WHILE...LOOP和FOR...LOOP. LO ...

  9. Oracle PL/SQL中的循环处理(sql for循环)

    今天来说下Oracle中的循环迭代处理,因为从自己的博客统计中看到,不少网友都搜索了关键字"SQL FOR循环",所以打算在这里说下个人的理解. PL/SQL也和我们常用的编程语言 ...

随机推荐

  1. moment.js 时间库

    一.概念:    https://www.cnblogs.com/Jimc/p/10591580.html    或    http://momentjs.cn/(官网) 1.Moment.js是一个 ...

  2. (转)springboot应用启动原理(二) 扩展URLClassLoader实现嵌套jar加载

    转:https://segmentfault.com/a/1190000013532009 在上篇文章<springboot应用启动原理(一) 将启动脚本嵌入jar>中介绍了springb ...

  3. Dealing with exceptions thrown in Application_Start()

    https://blog.richardszalay.com/2007/03/08/dealing-with-exceptions-thrown-in-application_start/ One a ...

  4. Microsoft Office Excel

    解除合并,并复制原始值到每一个解除合并后的单元格 对齐方式 -> 合并后居中 -> 取消单元格合并 编辑 -> 查找和选择 -> 定位条件 -> 空值 输入=然后按↑选择 ...

  5. 继承Process类,run函数的简单使用

    #定义一个类 继承Process类 from multiprocessing import Process import os import time class Download(Process): ...

  6. python 装饰器 第七步:带有参数的装饰器

    #第七步:带有参数的装饰器 #两个基本函数用同一个装饰器装饰 def outer(arg): print(arg) #这是装饰器的代码 def kuozhan(func): print(func) # ...

  7. 使用systemctl管理服务

    系统服务,开机不需要登录就能运行的程序(相当于开机自启)/usr/lib/systemd/system 用户服务,需要登录后才能运行的程序/usr/lib/systemd/user 目录下又存在两种类 ...

  8. soket通信

    import socket #socket采用cs结构,client and Server B/S browser and server sock = socket.socket(socket.AF_ ...

  9. 使用VS 2019发布.net core程序并部署到IIS的最新教程

    不管你是使用.net core开发的是web api还是网站类的程序,如果你是部署到IIS,那么下面的内容都适合于你,不会将.net core程序部署到IIS的朋友,可以看看这篇手把手教你部署.net ...

  10. linux装mysql

    1.对于MySQL-5.6.35-1.el6.x86_64.rpm-bundle.tar来说 2.命令: rpm -Uvh MySQL-*.rpm 3.将my.cnf复制到/etc下 4.记得关掉se ...