SQL删除无限极分类的存储过程

数据库 SQL Server
SQL中的存储过程非常重要,下面就将为您介绍SQL中删除无限极分类的存储过程,供您参考,希望对您能够有所帮助。

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 #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--从变量表中删除该记录,因为已取到它的所有子记录不必要了 

21      end

22      DELETE [Category] 

23      WHERE CategoryId=@CategoryId  

24 ---这段可以适应无限级分类表

表设计:

 

责任编辑:段燃 来源: 博客园
相关推荐

2014-11-17 09:51:39

PHP

2010-11-10 13:03:15

SQL Server存

2010-09-01 16:35:12

SQL删除存储过程

2011-07-11 13:22:28

存储过程

2010-09-02 11:24:45

SQL删除

2010-07-15 12:38:14

SQL Server存

2010-10-29 16:22:37

SQL存储过程

2010-09-03 14:14:16

SQL删除

2011-03-24 13:38:47

SQL Server 存储分页

2010-09-25 16:00:38

sql存储过程

2010-09-02 09:37:36

SQL删除

2010-10-22 17:14:03

SQL Server删

2009-08-06 16:44:06

2010-09-07 15:12:25

SQL语句优化

2009-11-27 16:47:36

PHP无限分类

2010-09-02 09:58:24

SQL删除

2010-11-12 09:46:55

Sql Server存

2009-09-17 15:22:38

LINQ to SQL

2009-11-05 18:07:33

Oracle导出sql

2010-11-12 12:01:08

Oracle存储过程
点赞
收藏

51CTO技术栈公众号