CREATE PROCEDURE [dbo].[DeleteN_NewsTopicInfoEntity] ( @TopicID BIGINT )
AS
BEGIN
---1.删除子类信息
WITH cte
AS ( SELECT TopicID ,
ParentID
FROM N_NewsTopicInfo n
WHERE n.ParentID = 14
UNION ALL
SELECT e.TopicID ,
e.ParentID
FROM N_NewsTopicInfo e
JOIN cte f ON f.TopicID = e.ParentID
)
SELECT MappingID ,
np.TopicID
INTO #topicStr
FROM cte
INNER JOIN dbo.N_TopicPositionMapping np ON cte.TopicID = np.topicid
IF EXISTS ( SELECT *
FROM #topicStr )
BEGIN
DELETE N_TopicPositionMapping
WHERE MappingID IN ( SELECT MappingID
FROM #topicStr )
DELETE N_NewsTopicInfo
WHERE TopicID IN ( SELECT TopicID
FROM #topicStr )
END
---2.删除当前信息
IF EXISTS ( SELECT TopicID
FROM dbo.N_TopicPositionMapping
WHERE TopicID = @TopicID )
BEGIN
DELETE N_TopicPositionMapping
WHERE TopicID = @TopicID
END
DELETE FROM N_NewsTopicInfo
WHERE TopicID = @TopicID
END