1
CREATE PROCEDURE USP_CatalogDeleteChild
2
(
3
@catalogid nvarchar(50)
4
)
5
AS
6
SET NOCOUNT ON
7
8
DECLARE @childCatalogId nvarchar(50)
9
DECLARE @loop int
10
DECLARE @totalrow int
11
12
DELETE FROM cms_catalog WHERE [id] = @catalogid
13
BEGIN
14
----------递归,使用临时表
15
SELECT[id],identity(int) AS i INTO #tmp FROM cms_catalog WHERE parentid = @catalogid
16
SET @totalrow = @@rowcount
17
SET @loop =1
18
19
WHILE(@loop <= @totalrow)
20
begin
21
SELECT @childCatalogId = [id] FROM #tmp WHERE i = @loop
22
SET @loop = @loop+1
23
EXEC USP_CatalogDeleteChild @childCatalogId
24
end
25
END
26
GO
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27