题目有意思,何况这200大洋!我也奋不顾身了,请看:CREATE procedure [dela] (@delclass char(10)) asdeclare @n int, @subclass char(10)select @n=1
while @n>0
begin
    select @n=count(*)
           from [tablename] 
           where 父類=@delclass    if @n>0
    begin
        select top 1 @subclass=子類 
               from [tablename] 
               where 父類=@delclass        exec dela @subclass        delete from [tablename] 
               where 父類=@delclass and 子類=@subclass
    end
enddelete from [tablename] 
       where 父類=@delclassreturn

解决方案 »

  1.   

    再给你一个比较让人担心的非递归算法,你自己加上事务吧。CREATE procedure [delb] (@delclass char(10)) ascreate table [#tmptable] (父類 char(10),子類 char(10))declare @n int, @foundfclass char(10), @foundsclass char(10)select @foundfclass=@delclass
    select @n=1while @n>0
    begin
        insert into [#tmptable] 
               select 父類,子類 
                      from [tttt] 
                      where 父類=@foundfclass    delete from [tttt] 
               where 父類=@foundfclass    select top 1 
               @foundsclass=父類, @foundfclass=子類 
               from [#tmptable]    delete from [#tmptable] 
               where 父類=@foundsclass and 子類=@foundfclass    select @n=count(*) 
               from [#tmptable]
    enddrop table [#tmptable]return