zoukankan      html  css  js  c++  java
  • SQL中循环的实现方式

    一、第一种方法,游标

    定义游标 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
  • 相关阅读:
    iOS开发--CoreGraphics简单绘图
    iOS开发--UITableView
    PowerDesigner
    使用jquery-qrcode生成二维码
    MVC中如何设置路由指定默认页
    项目管理
    版本管理
    如何在网页中嵌入百度地图
    asp.net网站中添加百度地图功能
    TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
  • 原文地址:https://www.cnblogs.com/alqscool/p/7921736.html
Copyright © 2011-2022 走看看