存储过程中事务的使用方法
 ALTER PROCEDURE dbo.PR_AddDPT
ALTER PROCEDURE dbo.PR_AddDPT 
 @dptName varchar(50),
    @dptName varchar(50), @dptWorker int
    @dptWorker int 
     AS
AS SET NOCOUNT ON
    SET NOCOUNT ON  
     begin tran --事务处理开始
    begin tran --事务处理开始 
     declare @insertError int,@updateError int
    declare @insertError int,@updateError int 
     insert into [dptInfo] values(@dptName,@dptWorker) --插入语句操作正常
    insert into [dptInfo] values(@dptName,@dptWorker) --插入语句操作正常 
     select @insertError=@@error
    select @insertError=@@error 
     
     update [dptInfo] set dptname='fantasy' where id=100 --更新语句由于id=100的记录不存在导致操作异常,因此事务会回滚到事务开始之前的位置,即前面插入的那条记录会消失
    update [dptInfo] set dptname='fantasy' where id=100 --更新语句由于id=100的记录不存在导致操作异常,因此事务会回滚到事务开始之前的位置,即前面插入的那条记录会消失 
     select @updateError=@@error
    select @updateError=@@error 
     if(@insertError=0 and @updateError=0) --如果事务顺利完成没有异常
    if(@insertError=0 and @updateError=0) --如果事务顺利完成没有异常 commit tran --事务完成
        commit tran --事务完成 else --如果有异常
    else --如果有异常 rollback tran --事务回滚
        rollback tran --事务回滚 
     SET NOCOUNT OFF
    SET NOCOUNT OFF 
      RETURN
    RETURN 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号