51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> sqlserver >> 文章正文

sql2008事务中断怎么写

更新时间:2012-4-7:  来源:51代码网

alter  PROCEDURE [dbo].[p_rep_test]
as begin  
   declare @ErrorMessage varchar(8000), @ErrorSeverity int, @ErrorState int,@ErrorNumber int,
         @OperType int,@abc int
        
 set  @abc=1       
 
        BEGIN TRANSACTION update_billofdocumentdetail
           begin try

               update t_wh_billofdocument
               set remark='1234'
               where id=15127
              
               if @abc=1
               begin
                 raiserror('%s',16,1,'中断')    
                 return 1 
               end 


              
           end try
           begin catch
             SELECT  @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(),
                     @ErrorState = ERROR_STATE(),@ErrorNumber=ERROR_NUMBER()
             if @ErrorSeverity>18 or @ErrorSeverity<0
                set @ErrorSeverity=16
             if @ErrorState>127 or @ErrorState<1
                set @ErrorState=1
           begin try
             ROLLBACK TRANSACTION update_billofdocumentdetail
           end try
           begin catch
           end catch

           set @ErrorMessage='保存失败'
           raiserror (@ErrorMessage, @ErrorSeverity,@ErrorState) 
           return @ErrorNumber
         end catch
         begin try
           COMMIT TRANSACTION update_billofdocumentdetail
         end try
         begin catch
         end catch
 end
我执行存储过程:exec p_rep_test
提示是:

(1 行受影响)
消息 50000,级别 16,状态 1,过程 p_rep_test,第 38 行
保存失败


我想在事务里,在运行事务里,当@abc=1,我想把事务中断,并且提示“中断”,而不是“保存失败”的提示,应该如何写sql代码?

回复:事务不能中断

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |