树形结构的处理--数据新增,修改、删除
2009-01-08 10:49
417 查看
--数据结构
表名tb,如果修改表名,则相应修改所有数据处理中涉及到的表名tb
id为编号(标识字段+主键)
pid为上级编号
name为名称,后面可以自行增加其他字段.
/*--数据新增,修改
数据新增,修改(包括修改所属的类别)没有什么技巧
,只需要检查所属的上级是否存在就行了.这个可以简单的用下面的语句来解决:
if exists(select 1 from tb where id=@id) print '存在' else print '不存在'
--*/
/*--数据删除--*/
create proc p_delete
@id int, --要删除的id
@deletechild bit=0 --是否删除子 1.删除子,0.如果@id有子,则删除失败.
as
if @deletechild=1
delete from tb where dbo.f_getmergid(id) like dbo.f_getmergid(@id)+'%'
else
if exists(select 1 from tb where pid=@id)
goto lbErr
else
delete from tb where id=@id
return
lbErr:
RAISERROR ('该结点下有子结点,不能删除', 16, 1)
go
表名tb,如果修改表名,则相应修改所有数据处理中涉及到的表名tb
id为编号(标识字段+主键)
pid为上级编号
name为名称,后面可以自行增加其他字段.
/*--数据新增,修改
数据新增,修改(包括修改所属的类别)没有什么技巧
,只需要检查所属的上级是否存在就行了.这个可以简单的用下面的语句来解决:
if exists(select 1 from tb where id=@id) print '存在' else print '不存在'
--*/
/*--数据删除--*/
create proc p_delete
@id int, --要删除的id
@deletechild bit=0 --是否删除子 1.删除子,0.如果@id有子,则删除失败.
as
if @deletechild=1
delete from tb where dbo.f_getmergid(id) like dbo.f_getmergid(@id)+'%'
else
if exists(select 1 from tb where pid=@id)
goto lbErr
else
delete from tb where id=@id
return
lbErr:
RAISERROR ('该结点下有子结点,不能删除', 16, 1)
go
相关文章推荐
- 比较两个DataTable数据(结构相同),返回新增的,删除的,修改前的,修改后的 DataTable
- 树形数据处理方案 收藏 树形数据的排序,新增,修改,复制,删除,数据完整性检查,汇总统计
- 比较两个DataTable数据(结构相同),返回新增的,删除的,修改前的,修改后的 DataTable
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- 树形结构数据后台处理:一次循环生成树
- 创建、删除、修改、复制表结构和复制数据SQL语句
- Mysql学习3——查看表结构、修改和删除数据表
- 存储过程-树形结构数据删除
- Mysql学习—查看表结构、修改和删除数据表
- php处理登录、添加数据、删除数据和修改数据
- Oracle恢复删除数据 && connect by 树形结构查询
- 利用二叉查找树处理数据-加载、存储、插入、删除、修改、输出
- sql数据库常见的新建 删除 修改表结构及数据的语句
- Json树形结构数据转Java对象并存储到数据库的实现-超简单的JSON复杂数据处理 .
- DataGridView新增数据,修改数据,删除数据
- Mysql学习3——查看表结构、修改和删除数据表
- zTree树形展示,可新增修改删除节点
- Mysql学习—查看表结构、修改和删除数据表
- SQL语句处理一些修改、新增、删除、修改属性操作(MySql)
- JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现