Stored Procedure Properties
| Name | Value |
|---|---|
| Owner | dbo |
| Created | 2004-05-31 |
| Startup | False |
| Encrypted | False |
Creation Options
| Name | Value |
|---|---|
| QUOTED_IDENTIFIER | OFF |
| ANSI_NULLS | OFF |
Parameters
| Name | DataType | Length | Type |
|---|---|---|---|
| @PostID | int | 4 | INPUT |
Total: 1 parameter(s)
SQL
SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO CREATE PROCEDURE forums_DeletePostAndChildren ( @PostID int ) AS DECLARE @ChildPostID int DECLARE @UserName nvarchar(50) DECLARE @ForumID int -- Build a cursor to loop through all the children of this post DECLARE c1 CURSOR LOCAL FOR SELECT PostID FROM Posts WHERE ParentID = @PostID OPEN c1 FETCH NEXT FROM c1 INTO @ChildPostID WHILE @@FETCH_STATUS = 0 BEGIN exec dbo.forums_DeletePostAndChildren @ChildPostID FETCH NEXT FROM c1 INTO @ChildPostID END -- now, go ahead and delete the post SELECT @UserName = Username, @ForumID = ForumID FROM Posts WHERE PostID = @PostID -- Decrement user's total post count UPDATE Users SET TotalPosts = (TotalPosts - 1) WHERE Username = @UserName -- Now, delete the post DELETE Posts WHERE PostID = @PostID -- Update the forum statistics exec Statistics_ResetForumStatistics @ForumID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO