
[dbo].[Forum_Group_SetOrder]
CREATE PROCEDURE dbo.[Forum_Group_SetOrder]
(
@GroupID INT,
@MoveUp BIT
)
AS
DECLARE @CurrentSortValue INT
DECLARE @ReplaceSortValue INT
SELECT @CurrentSortValue = [SortOrder]
FROM dbo.Forum_Groups
WHERE [GroupID] = @GroupID
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