USE [LosaGame] GO /****** Object: StoredProcedure [dbo].[game_practice_rank_Reward_Cursor] Script Date: 11/23/2017 12:48:42 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[game_practice_rank_Reward_Cursor]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[game_practice_rank_Reward_Cursor] GO USE [LosaGame] GO /****** Object: StoredProcedure [dbo].[game_practice_rank_Reward_Cursor] Script Date: 11/23/2017 12:48:42 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --IF OBJECT_ID('dbo.game_practice_rank_Reward_Cursor','P') IS NOT NULL -- -- DROP PROC dbo.game_practice_rank_Reward_Cursor -- --GO -- ============================================= -- Subject : dbo.game_practice_rank_Reward_Cursor -- DBA : -- DATE : 2015-06-17 -- Description : 훈련 데이터 생성 -- ============================================= CREATE PROCEDURE [dbo].[game_practice_rank_Reward_Cursor] @RankAStart Int, @RankAEnd Int, @RankAType Int, @RankACode Int, @RankAMent Int, @RankAPeriad Int, @RankBStart Int, @RankBEnd Int, @RankBType Int, @RankBCode Int, @RankBMent Int, @RankBPeriad Int, @RankCStart Int, @RankCEnd Int, @RankCType Int, @RankCCode Int, @RankCMent Int, @RankCPeriad Int, @RankDStart Int, @RankDEnd Int, @RankDType Int, @RankDCode Int, @RankDMent Int, @RankDPeriad Int, @RankDID varchar(20) AS BEGIN /* SET @RankAStart Int = 1, @RankAEnd Int = 2, @RankAType Int = 3, @RankACode Int = 1000039, @RankAMent Int = 1128, @RankAPeriad Int = 28 SET @RankBStart Int = 3, @RankBEnd Int = 5, @RankBType Int = 3, @RankBCode Int = 1000039, @RankBMent Int = 1128, @RankBPeriad Int = 28 SET @RankCStart Int = 6, @RankCEnd Int = 10, @RankCType Int = 3, @RankCCode Int = 1000039, @RankCMent Int = 1128, @RankCPeriad Int = 28 SET @RankDStart Int = 11, @RankDEnd Int =999999999, @RankDType Int = 3, @RankDCode Int = 1000039, @RankDMent Int = 1128, @RankDPeriad Int = 28 SET @RankDID varchar(20) = 'DeveloperK' */ DECLARE @sendIDX int, @receiveIDX int SET @sendIDX = ( SELECT accountIDX FROM [LosaGame].dbo.userMemberDB WITH(NOLOCK) WHERE nickName=@RankDID ) IF (@sendIDX IS NULL) BEGIN SET @sendIDX = ( SELECT accountIDX FROM [LosaGame].dbo.userMemberDB WITH(NOLOCK) WHERE nickName='DeveloperK' ) END DECLARE @AccountIDX INT = 0, @Ranking INT = 0 DECLARE RankingRewardCursor CURSOR FAST_FORWARD FOR SELECT [AccountIDX], RANK()over(PARTITION BY PracticeIDX ORDER BY PracticeTime, UpdateDate) AS PracticeRank FROM [LosaGame].[dbo].[userPracticeDB] OPEN RankingRewardCursor FETCH NEXT FROM RankingRewardCursor INTO @AccountIDX, @Ranking WHILE @@FETCH_STATUS = 0 BEGIN IF @RankAStart <= @Ranking AND @Ranking <= @RankAEnd BEGIN -- exec game_present_add_idx @sendIDX, @AccountIDX, @RankAType, @RankACode, 1, 0, 0, @RankAMent, GetDate() + @RankAPeriad, 0, 0 SELECT 1111, @sendIDX, @AccountIDX, @RankAType, @RankACode, 1, 0, 0, @RankAMent, GetDate() + @RankAPeriad, 0, 0 END ELSE IF @RankBStart <= @Ranking AND @Ranking <= @RankBEnd BEGIN -- exec game_present_add_idx @sendIDX, @AccountIDX, @RankBType, @RankBCode, 1, 0, 0, @RankBMent, GetDate() + @RankBPeriad, 0, 0 SELECT 2222, @sendIDX, @AccountIDX, @RankBType, @RankBCode, 1, 0, 0, @RankBMent, GetDate() + @RankBPeriad, 0, 0 END ELSE IF @RankCStart <= @Ranking AND @Ranking <= @RankCEnd BEGIN -- exec game_present_add_idx @sendIDX, @AccountIDX, @RankCType, @RankCCode, 1, 0, 0, @RankCMent, GetDate() + @RankCPeriad, 0, 0 SELECT 3333, @sendIDX, @AccountIDX, @RankCType, @RankCCode, 1, 0, 0, @RankCMent, GetDate() + @RankCPeriad, 0, 0 END ELSE IF @RankDStart <= @Ranking AND @Ranking <= @RankDEnd BEGIN -- exec game_present_add_idx @sendIDX, @AccountIDX, @RankDType, @RankDCode, 1, 0, 0, @RankDMent, GetDate() + @RankDPeriad, 0, 0 SELECT 4444, @sendIDX, @AccountIDX, @RankDType, @RankDCode, 1, 0, 0, @RankDMent, GetDate() + @RankDPeriad, 0, 0 END FETCH NEXT FROM RankingRewardCursor INTO @AccountIDX, @Ranking END CLOSE RankingRewardCursor DEALLOCATE RankingRewardCursor GO --if OBJECT_ID('userPracticeDB_Backup') is not null --DROP TABLE [LosaGame].[dbo].[userPracticeDB_Backup] --SELECT * INTO [LosaGame].[dbo].[userPracticeDB_Backup] --FROM [LosaGame].[dbo].[userPracticeDB] --TRUNCATE TABLE [LosaGame].[dbo].[userPracticeDB] END