回滚事务

时间:2016-03-06 12:58:16

标签: c# sql-server entity-framework tsql ef-code-first

我有下一个代码:

C#

Database.ExecuteSqlCommand("sp_myProc")

SQL



 procedure sp_myProc
    begin try
       begin tran
              insert....
              delete....
       commit tran
    end try
    begin catch
         goto error;
    end catch

    error:
        if @@trancount > 0
           rollback tran 

由于ExecuteSqlCommand也打开了abmient事务而导致此代码无法正常运行,如果出现错误,则会@@trancount,回滚包括ExecuteSqlCommand在内的所有事务。 EF产生错误:

  

“EXECUTE之后的事务计数表示COMMIT或ROLLBACK   TRANSACTION语句缺少“

我的问题#1:我对正确理解当前错误是对的吗?

my问题#2:如果我将存储过程sp_myProc更改为如下所示:

   set xact abort on;
   begin tran
          insert....
          delete....
   commit tran

我可以提出什么警告或错误?

0 个答案:

没有答案