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


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

GO
Uses