Stored Procedures [dbo].[Forum_Forum_SetOrder]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@GroupIDint4
@ForumIDint4
@MoveUpbit1
SQL Script


CREATE PROCEDURE dbo.[Forum_Forum_SetOrder]
    (
      @GroupID INT,
      @ForumID INT,
      @MoveUp BIT
    )
AS
    DECLARE @CurrentSortValue INT
    DECLARE @ReplaceSortValue INT
-- Get the current sort order
    SELECT  @CurrentSortValue = [SortOrder]
    FROM    dbo.Forum_Forums
    WHERE   [GroupID] = @GroupID
            AND [ForumID] = @ForumID    
-- Move the item up or down?
    IF ( @MoveUp = 1 )
        BEGIN
            IF ( @CurrentSortValue != 0 )
                BEGIN
                    SET @ReplaceSortValue = @CurrentSortValue - 1
                    UPDATE  dbo.Forum_Forums
                    SET     [SortOrder] = @CurrentSortValue
                    WHERE   [SortOrder] = @ReplaceSortValue
                            AND [GroupID] = @GroupID
                    UPDATE  dbo.Forum_Forums
                    SET     [SortOrder] = @ReplaceSortValue
                    WHERE   [ForumID] = @ForumID
                            AND [GroupID] = @GroupID
                END
        END
    ELSE
        BEGIN
            IF ( @CurrentSortValue < ( SELECT   MAX([ForumID])
                                       FROM     dbo.Forum_Forums
                                       WHERE    [GroupID] = @GroupID
                                     ) )
                BEGIN
                    SET @ReplaceSortValue = @CurrentSortValue + 1
                    UPDATE  dbo.Forum_Forums
                    SET     [SortOrder] = @CurrentSortValue
                    WHERE   [SortOrder] = @ReplaceSortValue
                            AND [GroupID] = @GroupID
                    UPDATE  dbo.Forum_Forums
                    SET     [SortOrder] = @ReplaceSortValue
                    WHERE   [ForumID] = @ForumID
                            AND [GroupID] = @GroupID
                END
        END

GO
Uses