
[dbo].[Forum_AA_ThreadUpdate]
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
UPDATE dbo.Forum_Threads
SET [IsPinned] = @IsPinned,
[PinnedDate] = @PinnedDate
WHERE [ThreadID] = @ThreadID
END
IF @Action = 'postdelete'
BEGIN
DECLARE @LastPostID INT
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