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
