存储过程的错误处理

来源:互联网 发布:代账软件 编辑:程序博客网 时间:2024/05/01 01:34

 存储过程的错误处理:  
   
  create   proc   p_test  
  @reErr   int   output  
  as  
  exec('insert   into   表   values(1)')     --如果不用exec,直接执行的话,就捕捉不到错误  
  set   @reErr=@@error  
  if   @reErr<>0   print   '插入错误'  
  go  

 

SP的错误处理应该这样:  
  CREATE   PROCEDURE     dbo   .   pro_A    
  ……  
  AS  
  ……  
  DECALRE   @RC   INT  
  SELECT   @RC=0  
   
  if(@RC=0)  
    BEGIN  
          SELECT.....  
          UPDATE...  
   
    SELECT   @RC=@@ERRRO  
    IF   @RC<>0  
        BEGIN    
                  SELECT   @RC=-5001  
                  RETURN   @RC  
        END  
  ELSE  
  ....