存储过程实现无限级分类(2)

删除的存储过程

CREATE PROCEDURE sp_Column_Delete
(
@Column_ID int
)
AS
Declare @Err As int
Set @Err = 0
Begin Tran
--首先查询该节点下是否有子节点
Select Column_ID From Tb_Column Where Parent_ID = @Column_ID
IF @@RowCount<>0
    Begin
    Set @Err = 1
    Goto theEnd
    End

--获取该节点的Column_Order,为了删除后整理其他记录的顺序
Declare @Column_Order As int
Select @Column_Order = Column_Order From Tb_Column Where Column_ID = @Column_ID
IF @Column_Order Is NUll
    Begin
      Set @Err =2
      Goto theEnd
    End

--更新其他记录的Column_Order
Update Tb_Column Set Column_Order = Column_Order -1 Where Column_Order >@Column_Order
IF @@Error<>0
    Begin
      Set @Err =3
      Goto theEnd
    End

--删除操作
Delete From Tb_Column Where Column_ID=@Column_ID
IF @@Error<>0
    Begin
      Set @Err =4
      Goto theEnd
  End

--更新其他记录的Column_ID
--Update Tb_Column Set Column_ID= Column_ID - 1 Where Column_ID >@Column_ID
--IF @@Error<>0
--    Begin
--      Set @Err =5
--      Goto theEnd
--    End

theEnd:
IF @Err = 0
    Begin
      Commit Tran
      Return 0 --删除成功
    End
Else
    Begin
      IF @Err=1
  Begin
      Rollback Tran
      Return 1 --有子节点
End
      Else
Begin
      Rollback Tran
      Return 2--未知错误
End
    End
GO

时间: 2024-12-31 00:27:00

存储过程实现无限级分类(2)的相关文章

存储过程实现无限级分类(1)

在做考题的的时候,涉及到分类,虽然不是无限级的,但是,为了以后扩展用,想做成无限级,在网上找找了,一个用存储过程作的,虽然添加,编辑,移动,用的是存储过程,可是在读出来的时候只用了一条Select 语句,感觉挺爽的,下面我把存储过程列出来,我只用到了添加,编辑,没有用到移动. 1,表结构 =================================================== 表结构: 表名:Tb_Column 表结构(所有字段非空): Column_ID int 主键(注:非标识

存储过程实现无限级分类(3)

最后一步显示分类(只是一条select语句) CREATE PROCEDURE sp_Column_List AS SELECT Column_ID,Column_Name,Parent_ID,Column_Path,Column_Depth, Column_Order,Column_Intro FROM Tb_Column ORDER BY Column_Order GO 接下来就是在界面呈现了,显示的时候用的是DataGrid Html代码如下: <asp:DataGrid id="D

无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(2)插入记录

-- ======================================== -- Author:  <杨俊明,jimmy.yang@cntvs.com> -- Description: <无限级分类插入记录> -- Return     : 成功返回0,重名返回1 -- ======================================== Create PROCEDURE [dbo].[up_Class_InsertEx]  @newId uniqueide

mysql 无限级分类实现思路_Mysql

第一种方案: 使用递归算法,也是使用频率最多的,大部分开源程序也是这么处理,不过一般都只用到四级分类.这种算法的数据库结构设计最为简单.category表中一个字段id,一个字段fid(父id).这样可以根据WHERE id = fid来判断上一级内容,运用递归至最顶层. 分析:通过这种数据库设计出的无限级,可以说读取的时候相当费劲,所以大部分的程序最多3-4级分类,这就足以满足需求,从而一次性读出所有的数据,再对得到数组或者对象进行递归.本身负荷还是没太大问题.但是如果分类到更多级,那是不可取

琥珀无限级分类联动菜单AJAX版

ajax|菜单|联动菜单 我做好琥珀无限级分类联动菜单Javascript版后,在蓝色理想和CSDN上发表了一下,梅花雪兄在CSDN上提出了效率不足的问题,我也认识到了这一点,本打算项目完工后再进行完善,但一时技痒,便在网上寻找了一下资料,最后做出了此AJAX版无限级分类联动菜单.因时间匆忙,做得比较粗糙,但已利用AJAX技术,实现无限级联动,待过一段时间再完善此版本.希望能给大家提供一些帮助,有好的建议或bug可在此帖后回复或浏览http://www.51ajax.com/bbs/发帖.运行环

ASP把无限级分类生成数组

数组 把无限级分类循环出来确实是一件头疼的事情.比如,我们要循环出一个SELECT,或一个TABLE,要写一大堆判断.有没好点的办法呢?我的做法是生成数组,可以重复调用,直接循环数组就行了.为了方便,我把它写成了类. class.asp 返回所有分类的数组,并按顺序排列有4个属性:set aa=new classlistaa.id="id"//编号的名称aa.classname="classname"//分类名称aa.pid="pid"//父ID

PHP无限级分类查找父层函数

函数 如: classID          classFID          className          classCount      1                  0                   中国                     0      2                  1                   浙江                     0      3                  1                

php+mysql实现无限级分类 | 树型显示分类关系

    无限级分类,主要是通过储存上级分类的id以及分类路径来实现.由于数据的结构简单,所以要将分类的关系由树状显示,我只能想到用递归的方式给于实现,下面是分类数据表结构和自己写的一个树状显示函数,有什么不妥的地方希望大家能指出.     表结构:id字段为分类标识,name字段为分类名,father_id字段为所属父分类的id,path字段为分类路径(储存该分类祖先的集合),isdir判断是否是目录(1为是,0为否).     显示函数: //$count为分类等级 sort_list($st

无限级分类树型节点演示

<!-- 看到论坛里有人发了一个树型菜单,需者甚众,看了一下演示,似乎不难实现,趁着周六没事,便也写了一个出来理论上支持无限级分类,发上来与大家分享!!'-------------------------- 名称:无限级分类树型菜单演示 作者:y0h最后更新:2004-09-19 22:40 环境:ASP+ACCESS '//----------List表定义 'Create Table List(ID AUTOINCREMENT,ParentID long,Title Text(50),Url