add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE Test
(
Id INT NOT NULL PRIMARY KEY IDENTITY(1,1),
[Name] NVARCHAR(50) NOT NULL,
ParentId INT NULL FOREIGN KEY REFERENCES Test(Id)
)

INSERT INTO Test(Name) VALUES ('ABC'),('DEF'),('HIJ');
INSERT INTO TEST(Name,ParentId) VALUES ('KLM',1),('NOP',1),('QRS',2),('TUV',2),('XYX',3)
INSERT INTO Test(Name, ParentId) VALUES('AAB',4),('AAC',4),('AAD',4)
11 rows affected
SELECT *
FROM dbo.Test;
Id Name ParentId
1 ABC null
2 DEF null
3 HIJ null
4 KLM 1
5 NOP 1
6 QRS 2
7 TUV 2
8 XYX 3
9 AAB 4
10 AAC 4
11 AAD 4
DECLARE @ID int = 1;

WITH rCTE AS(
SELECT T.Id
FROM dbo.Test T
WHERE T.Id = @ID
UNION ALL
SELECT T.Id
FROM rCTE r
JOIN dbo.Test T ON r.Id = T.ParentId)
DELETE T
FROM dbo.Test T
JOIN rCTe r ON T.Id = r.Id;
6 rows affected
SELECT *
FROM dbo.Test;
Id Name ParentId
2 DEF null
3 HIJ null
6 QRS 2
7 TUV 2
8 XYX 3