多级菜单删除

if exists (select * from sysobjects where name='proc_menu_delete')
drop proc proc_menu_delete
go
create proc proc_menu_delete(@id int)
as 
declare @count int,@tmpid int
select @count=count(1) from Menu where Id=@id
if(@count>0)
begin 
    declare ar_cursor cursor local for select id from menu where pid=@id
    open ar_cursor
    fetch next from ar_cursor into @tmpid
    while @@FETCH_STATUS=0
    begin 
        exec proc_menu_delete @tmpid
        fetch next from ar_cursor into @tmpid
    end
        close ar_cursor
        deallocate ar_cursor
end 
delete Menu where Id=@id    
go
View Code

 

posted on 2013-11-26 22:51  朝着  阅读(305)  评论(0编辑  收藏  举报