Stored Procedures [dbo].[Forum_AA_ThreadUpdate]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@ThreadIDint4
@PostIDint4
@IsPinnedbit1
@PinnedDatedatetime8
@Actionnvarchar(10)20
@PollIDint4
SQL Script


CREATE PROCEDURE dbo.[Forum_AA_ThreadUpdate]
    (
      @ThreadID INT,
      @PostID INT,
      @IsPinned BIT,
      @PinnedDate DATETIME,
      @Action NVARCHAR(10),
      @PollID INT    
    )
AS
    IF @Action = 'postadd'
        BEGIN
            UPDATE  dbo.Forum_Threads
            SET     [LastPostedPostID] = @PostID,
                    [IsPinned] = @IsPinned,
                    [PinnedDate] = @PinnedDate,
                    [Replies] = ( ( SELECT  [Replies]
                                    FROM    dbo.Forum_Threads
                                    WHERE   [ThreadID] = @ThreadID
                                  ) + 1 )
            WHERE   [ThreadID] = @ThreadID
        END
    IF @Action = 'postedit'
        BEGIN -- edit the first post of this thread
            UPDATE  dbo.Forum_Threads
            SET     [IsPinned] = @IsPinned,
                    [PinnedDate] = @PinnedDate
            WHERE   [ThreadID] = @ThreadID
        END
    IF @Action = 'postdelete'
        BEGIN
            DECLARE @LastPostID INT
    -- Get another lastpost to update thread info
            SET @LastPostID = ( SELECT  MAX([PostID])
                                FROM    dbo.Forum_Posts
                                WHERE   [ThreadID] = @ThreadID
                              )
            PRINT 'Last post id' + CONVERT(VARCHAR, @LastPostID)
            UPDATE  dbo.Forum_Threads
            SET     [LastPostedPostID] = @LastPostID,
                    [IsPinned] = @IsPinned,
                    [PinnedDate] = @PinnedDate,
                    [Replies] = ( ( SELECT  [Replies]
                                    FROM    dbo.Forum_Threads
                                    WHERE   [ThreadID] = @ThreadID
                                  ) - 1 )
            WHERE   [ThreadID] = @ThreadID
        END
    IF @PollID > 0
        BEGIN
            UPDATE  dbo.Forum_Polls_Polls
            SET     ThreadID = @ThreadID
            WHERE   PollID = @PollID
        UPDATE  dbo.Forum_Threads
        SET        PollID = @PollID
        WHERE   ThreadID = @ThreadID
        END

GO
Uses
Used By