Sql中创建事务处理

Create Procedure  MyProcedure
    AS
       Begin
           Set    NOCOUNT    ON; 
           Set XACT_ABORT ON; --这句话非常重要
           begin try
               Begin  Tran   --开始事务
               
               insert into userinfo(username,userpwd,RegisterTime) values('admin','admin',getdate())
               insert into userinfo(username,userpwd,RegisterTime) values('jack','jack',getdate())

               Commit Tran       --提交事务
            end try
            begin catch
                --在此可以使用xact_state()来判断是否有不可提交的事务,不可提交的事务

                --表示在事务内部发生错误了。Xact_state()有三种值:-1.事务不可提交;

                 --1.事务可提交;0.表示没有事务,此时commit或者rollback会报错。

                 if xact_state()=-1
                     rollback tran;
            end catch
      Set XACT_ABORT OFF;
End

  

原文地址:https://www.cnblogs.com/luoyangcn/p/4224788.html