📄 cs_thread_delete.prc
字号:
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cs_Thread_Delete]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[cs_Thread_Delete]
GO
CREATE PROCEDURE dbo.cs_Thread_Delete
(
@SettingsID int,
@SectionID int,
@ThreadID int,
@ResetStatistics bit = 1,
@DeletedBy INT,
@Reason NVARCHAR(1024) = ''
)
AS
SET Transaction Isolation Level Read UNCOMMITTED
BEGIN
DECLARE @PostID INT
DECLARE @PostSubject NVARCHAR(256)
SET @PostID = 0
SET @PostSubject = ''
-- Get thread starter's post ID and subject
SELECT
@PostID = p.PostID,
@PostSubject = p.Subject
FROM
cs_Threads t
LEFT JOIN cs_Posts AS p
ON t.ThreadID = p.ThreadID AND p.PostLevel = 1
WHERE
t.ThreadID = @ThreadID AND
t.SectionID = @SectionID AND
t.SettingsID = @SettingsID
DELETE FROM cs_PostAttachments WHERE PostID IN (SELECT PostID FROM cs_Posts WHERE ThreadID = @ThreadID AND SettingsID = @SettingsID)
DELETE FROM cs_PostEditNotes WHERE PostID IN (SELECT PostID FROM cs_Posts WHERE ThreadID = @ThreadID AND SettingsID = @SettingsID)
DELETE FROM cs_Posts_InCategories WHERE PostID IN (SELECT PostID FROM cs_Posts WHERE ThreadID = @ThreadID AND SettingsID = @SettingsID)
DELETE FROM cs_PostsArchive WHERE PostID IN (SELECT PostID FROM cs_Posts WHERE ThreadID = @ThreadID AND SettingsID = @SettingsID)
DELETE FROM cs_Posts WHERE ThreadID = @ThreadID AND SettingsID = @SettingsID
DELETE FROM cs_ThreadRating WHERE ThreadID = @ThreadID AND SettingsID = @SettingsID
DELETE FROM cs_ThreadsRead WHERE ThreadID = @ThreadID AND SettingsID = @SettingsID
DELETE FROM cs_TrackedThreads WHERE ThreadID = @ThreadID AND SettingsID = @SettingsID
DELETE FROM cs_SearchBarrel WHERE SectionID = @SectionID AND ThreadID = @ThreadID AND SettingsID = @SettingsID
DELETE FROM cs_Threads WHERE ThreadID = @ThreadID AND SettingsID = @SettingsID
-- Update Moderation Audit table
IF (@PostID IS NOT NULL AND @PostID > 0)
BEGIN
IF (@Reason IS NULL OR @Reason = '')
SET @Reason = 'Automatic generated reason: thread starter post has been permanently deleted on request. Thread ID: ' + CAST(@ThreadID AS NVARCHAR(30)) + '. Thread Name: ' + @PostSubject
EXEC cs_system_ModerationAction_AuditEntry 4, @DeletedBy, @PostID, null, null, @SettingsID, @Reason
END
-- Update forum's statistics?
IF (@ResetStatistics = 1)
BEGIN
EXEC cs_system_ResetForumStatistics @SectionID
EXEC cs_Posts_UpdatePostsInCategories @SectionID = @SectionID, @PostID = @PostID
END
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
grant execute on [dbo].[cs_Thread_Delete] to public
go
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -