اخيرراااااااااا تم حل المشكله بس بطريقه غريبه جدا و انا مكنتش متخيل انها هاتتحل كده 
بص اللى حصل انى لاحظن ان الكويرى ده
	كود:
	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
 مكتوب فيه 
	كود:
	WHERE EvaluationPoint >= 10
 روحت عامل زى اللى فى الصوره دى 
و لاقيت ال Buff اشتغل لوحده و الحمد لله 
ياريت لو قدرت توصل لحاجه قولى علشان انا عايز افهم ايه اللى حصل ده 
و كمان فى ناس كتيير محتاجه الموضوع ده 
شكرا على المساعده