一个事务的问题
begin   tran 
 ... 
 if(a> 1) 
 begin    
          if(b> 1) 
                raiserror( "b不能大于1 ",18,18) 
 end 
 if(a <1) 
 begin 
          if(c> 1) 
                raiserror( "b不能大于1 ",18,18) 
 end   
 ..具体操作   
 我想在上面那里,任意有raiserror发生就不执行下面的具体操作,该怎么处理 
 我在这样写但不行     
 if(@@error=0) 
 commit   tran 
 else    
 rollback   tran   
 但是这样写就算上面出现了raiserror,下面仍然照样执行
------解决方案--------------------呵呵,加return
------解决方案--------------------定义一个变量,在执行前给它赋一个值,如果出错,则把它改成另一个值,这样执行结束后去判断它就可以了
------解决方案--------------------写成存储过程 :    
 create proc usp_2 
 as 
 begin tran  
  select * into tttt from ttttttttttttttttt 
  if @@error  <>  0  
    begin  
       rollback tran  
       return 
    end 
  select * into tt111 from t   
  -- rollback tran  
  if @@error  <>  0  
    begin  
       rollback tran  
       return 
    end 
 commit tran