跨库回滚问题, 返回

SqlSugar 老数据
6 1006
该叫什么 Cy1 发布于2023/2/23
悬赏:5 飞吻

            try

            {

               //跨库事务

                Db.AsTenant().BeginTran();

              //sqlserver 存储过程

                var dt = Db.GetConnection(ConfigId.sqlserver).Ado.UseStoredProcedure().GetDataTable("webmes_scll", new { @sourceSql = sourceSql, @billNo = billNo });

              //Oracle 插入日志

                Db.Insertable(mestok3).ExecuteCommand(); //都是参数化实现

              //提交

                Db.AsTenant().CommitTran();

                return new ActionResult { Status = true, Data = billNo, Message = "生成成功!" };

            }

            catch (Exception ex)

            {

                Db.AsTenant().RollbackTran();//数据回滚


                return new ActionResult { Status = false, Message = ex.Message };

            }


上面是代码,测试回滚发现  Oracle日志生成无问题,但是Sqlserver存储过程生成数据没有发生回滚。

热忱回答6

  • fate sta fate sta VIP0
    2023/2/23

    var db=Db;

    下面全部用db在试一下

    0 回复
  • fate sta fate sta VIP0
    2023/2/23

    还有存储过程,内部是否有事务

    0 回复
  • fate sta fate sta VIP0
    2023/2/23

    这样你先不用存储过程,测试,因存储过程里面是可能有问题 ,比如 有已存事务或者 内部用字符串动态拼SQL 

    0 回复
  • Cy1 Cy1 VIP0
    2023/2/24

    @fate sta:存储过程里面 没有Begin Tran

    0 回复
  • Cy1 Cy1 VIP0
    2023/2/24

    @fate stavar db=Db; 我测试一下,测试完回复。

    0 回复
  • Cy1 Cy1 VIP0
    2023/2/24

    @fate stavar db=Db; 我测试一下,测试完回复。

    经实际数据测试,可以回滚,感谢回答

    0 回复