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