杂七杂八!

C# .Net Sql AD Flash Javascript Ajax
树形结构的处理--数据新增,修改、删除

  --数据结构   
  表名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  

posted on 2009-01-08 10:49  acheng  阅读(852)  评论(0编辑  收藏  举报