عرض مشاركة واحدة
قديم 29-07-2016, 02:14 PM   #12

Dev.Ri3o
عضو ذهبى



الصورة الرمزية Dev.Ri3o


• الانـتـسـاب » Apr 2015
• رقـم العـضـويـة » 121546
• المشـــاركـات » 4,029
• الـدولـة » https://t.me/pump_upp
• الـهـوايـة » MIS
• اسـم الـسـيـرفـر » No Server
• الـجـنـس » Male
• نقـاط التقييم » 45
Dev.Ri3o صـاعـد

Dev.Ri3o غير متواجد حالياً


إرسال رسالة عبر ICQ إلى Dev.Ri3o إرسال رسالة عبر AIM إلى Dev.Ri3o إرسال رسالة عبر Yahoo إلى Dev.Ri3o

افتراضي رد: مشكله فى الهونر بف



هتخش على ال Database ال Clean وهتاخد منها ال Procedure بتاعة ال TrainingCamp وبدلها باللى عندك
واعمل ال Query ده
كود:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_TRAINING_CAMP_UPDATEHONORRANK]    Script Date: 06/03/2012 10:09:05 ******/
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


توقيع Dev.Ri3o :
عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]

التعديل الأخير تم بواسطة Dev.Ri3o ; 29-07-2016 الساعة 02:17 PM

رد مع اقتباس