23-11-2015, 09:15 PM
|
#2
|
|
• الانـتـسـاب » Jan 2014
|
• رقـم العـضـويـة » 116041
|
• المشـــاركـات » 2,589
|
• الـدولـة » Gizaaa
|
• الـهـوايـة » SilkRoad4Arab Only One <3
|
• اسـم الـسـيـرفـر » Private Server
|
• الـجـنـس » Male
|
• نقـاط التقييم » 26
|
|
|
رد: Honer rank
الquery دي work 100%
كود PHP:
USE [SRO_VT_SHARD] GO /****** Object: StoredProcedure [dbo].[_TRAINING_CAMP_UPDATEHONORRANK] Script Date: 05/04/2013 03:10:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_UPDATEHONORRANK] AS SET NOCOUNT ON
-- ÀÏ´Ü ·©Å· Å×À̺íÀ» ¼¼ÆÃÇÑ´Ù. DECLARE @Ranking INT SET @Ranking = 1
DECLARE @CampID INT DECLARE @Rank TINYINT
BEGIN TRANSACTION
DECLARE RankCursor CURSOR FAST_FORWARD FOR SELECT TOP 50 [ID] FROM _TrainingCamp WITH (NOLOCK) WHERE EvaluationPoint >= 10 ORDER BY EvaluationPoint DESC, LatestEvaluationDate ASC
-- ÀÏ´Ü Àüü ·©Å·À» ¾øÀ½À¸·Î Ç¥½ÃÇÏÀÚ. UPDATE _TrainingCamp SET Rank = 5 WHERE Rank <> 5 IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION
DEALLOCATE RankCursor RETURN -1 END
-- ·©Å· Å×ÀÌºíµµ ÃʱâÈ*ÇÏÀÚ. UPDATE _TrainingCampHonorRank SET CampID = null, Rank = null IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION
DEALLOCATE RankCursor RETURN -1 END
OPEN RankCursor FETCH NEXT FROM RankCursor INTO @CampID WHILE @@FETCH_STATUS = 0 BEGIN IF @Ranking <= 5 BEGIN SET @Rank = 1 END ELSE IF @Ranking <= 15 BEGIN SET @Rank = 2 END ELSE IF @Ranking <= 30 BEGIN SET @Rank = 3 END ELSE BEGIN SET @Rank = 4 END
UPDATE _TrainingCamp SET Rank = @Rank WHERE [ID] = @CampID IF (@@ERROR <> 0 OR @@ROWCOUNT = 0) BEGIN ROLLBACK TRANSACTION CLOSE RankCursor DEALLOCATE RankCursor
RETURN -2 END UPDATE _TrainingCampHonorRank SET CampID = @CampID, Rank = @Rank WHERE Ranking = @Ranking IF (@@ERROR <> 0 OR @@ROWCOUNT = 0) BEGIN ROLLBACK TRANSACTION CLOSE RankCursor DEALLOCATE RankCursor
RETURN -3 END SET @Ranking = @Ranking + 1
FETCH NEXT FROM RankCursor INTO @CampID END
CLOSE RankCursor DEALLOCATE RankCursor
-- ¸¶Áö¸·À¸·Î °»½ÅÇÑ ³¯Â¥¸¦ Àû¾îº¸ÀÚ!!! IF EXISTS (SELECT LastUpdateDate FROM _TrainingCampHonorRankUpdateDate) BEGIN UPDATE _TrainingCampHonorRankUpdateDate SET LastUpdateDate = GETDATE() END ELSE BEGIN INSERT INTO _TrainingCampHonorRankUpdateDate VALUES (GETDATE()) END
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0) BEGIN ROLLBACK TRANSACTION RETURN -4 END
COMMIT TRANSACTION
SET NOCOUNT OFF
RETURN 1
|
|
|