Stored Procedure Properties
| Name | Value |
|---|---|
| Owner | dbo |
| Created | 2004-05-31 |
| Startup | False |
| Encrypted | False |
Creation Options
| Name | Value |
|---|---|
| QUOTED_IDENTIFIER | ON |
| ANSI_NULLS | ON |
Parameters
| Name | DataType | Length | Type |
|---|---|---|---|
| @PostID | int | 4 | INPUT |
| @ApprovedBy | nvarchar | 100 | INPUT |
| @Reason | nvarchar | 2048 | INPUT |
Total: 3 parameter(s)
SQL
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE forums_DeleteModeratedPost ( @PostID int, @ApprovedBy nvarchar(50), @Reason nvarchar(1024) ) AS -- we must delete all of the posts and replies -- first things first, determine if this is the parent of the thread DECLARE @ThreadID int DECLARE @ForumID int DECLARE @UserName nvarchar(50) SELECT @ThreadID = ThreadID, @ForumID = ForumID, @UserName = Username FROM Posts (nolock) WHERE PostID = @PostID IF @ThreadID = @PostID BEGIN -- we are dealing with the parent fo the thread -- delete all of the thread tracking DELETE ThreadTrackings WHERE ThreadID = @ThreadID -- Delete the entire thread DELETE Posts WHERE ThreadID = @ThreadID -- Clean up the forum statistics exec Statistics_ResetForumStatistics @ForumID -- Update users table to decrement post count for this user UPDATE Users SET TotalPosts = (TotalPosts - 1) WHERE Username = @UserName -- Record to our moderation audit log INSERT INTO ModerationAudit VALUES (GetDate(), @PostID, @ApprovedBy, 4, @Reason) END ELSE -- we must recursively delete this post and all of its children exec dbo.forums_DeletePostAndChildren @PostID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO