SQL刪除無限極分類的存儲(chǔ)過程
SQL中的存儲(chǔ)過程非常重要,下面就將為您介紹SQL中刪除無限極分類的存儲(chǔ)過程,供您參考,希望對(duì)您能夠有所幫助。
01 CREATE PROCEDURE [dbo].[Category_Delete]
02 @CategoryId int
03 AS
04 --DELETE [Category]
05 -- WHERE CategoryId=@CategoryId
06
07 --DELETE [Category]
08 -- WHERE FatherId=@CategoryId
09
10 declare @taba TABLE([tabid] [int] NOT NULL)
11 insert @taba (tabid)
12 select CategoryId from Category WHERE FatherId=@CategoryId
13 declare @id int
14 while(exists(select top 1 * from @taba))--只要還有數(shù)據(jù)就繼續(xù)循環(huán)
15 begin #p#
16 select top 1 @id=tabid from @taba--從變量表中取出一條記錄
17 insert @taba (tabid)--插入父ID等于@id這條記錄的子記錄
18 select CategoryId from Category WHERE FatherId=@id
19 delete from Category where CategoryId=@id--從原表中刪除該記錄
20 delete from @taba where tabid=@id--從變量表中刪除該記錄,因?yàn)橐讶〉剿乃凶佑涗洸槐匾?nbsp;
21 end
22 DELETE [Category]
23 WHERE CategoryId=@CategoryId
24 ---這段可以適應(yīng)無限級(jí)分類表
表設(shè)計(jì):