我想这样
if ()
{
 if()
  {
  }
 else
 {
  sub()
 }
}
else
{
sub()
}
如果不能写方法还有什么办法实现吗?

解决方案 »

  1.   

    这样试试:SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GOALTER   procedure ABCD
       @fld1 char(100),
       @fld2 char(300)
    as--每一过程拥有一唯一区界号,过程内的异常编号在此基础上增加
    declare @errcode integer
    set @errcode=11000      
    declare @return integer /*返回结果的初始化*/
    set @return=0--启动事务处理
    declare @tran_point int --控制事务嵌套
    set @tran_point=@@trancount --保存事务点
    if @tran_point=0
    begin tran tran_ABCD
    else
    save tran tran_ABCDupdate .... if @@error <> 0 
     begin
       set @return=2
       goto err_lab
     end  insert into ....if @@error <> 0 
     begin
       set @return=3
       goto err_lab
     end ----------事务处理
    if @tran_point=0
    commit tran tran_ABCD
    goto return_laberr_lab:
    if @return<100 set @return=@errcode +@return
    rollback tran tran_ABCDreturn_lab:
    return @returnGO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO