SQL删除无限极分类的存储历程(1)[MSSQL防范]
本文“SQL删除无限极分类的存储历程(1)[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
SQL中的存储历程非常重要,下面就将为您介绍SQL中删除无限极分类的存储历程,供您参考,但愿对您可以有所帮忙.
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))--只要还有数据就持续循环
15 begin
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--从变量表中删除该记录,因为已取到它的全部子记录不必要了
21 end
22 DELETE [Category]
23 WHERE CategoryId=@CategoryId
24 ---这段可以适应无限级分类表
表计划:
以上是“SQL删除无限极分类的存储历程(1)[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |