MERGE 语句试图多次更新或删除同一行。
3,505次浏览
编辑于2017年08月31日 11:24:34
版本 V6.2 安装了8月24号补丁在成本计算时,成本核算过程中出错
Message:MERGE 语句试图多次更新或删除同一行。目标行与多个源行匹配时会出现这种情况。MERGE 语句无法多次更新/删除目标表的同一行。请简化 ON 子句,以确保目标行最多与一个源行匹配,也可以使用 GROUP BY 子句对源行分组。;StackTrace: at Kingdee.BOS.App.Data.AbstractDatabase.ExecuteNonQuery(DbCommand command, IEnumerable`1 listParam)
at Kingdee.BOS.App.Data.DBUtils.ExecuteBatchWithTime(Context ctx, List`1 lstSqlObj, Int32 commandTimeout)
at Kingdee.K3.FIN.CB.App.Core.ExpenseAllocate.Utils.ProOrderDime.UpdateProductDimeId(Context ctx, OutStockAcctgParameters acctgParameters, String tempTable)
at Kingdee.K3.FIN.CB.App.Core.ExpenseAllocate.Utils.ProOrderDime.InsertProorderDime(Context ctx, OutStockAcctgParameters acctgParameters)
at Kingdee.K3.FIN.CB.App.Core.ExpenseAllocate.ExpenseAllocateEngine.BeforeExpenseAllocated()
at Kingdee.K3.FIN.App.Core.OutAcctg.AbstractAcctgService.BeforeExecution[T](Context ctx, T acctgParameters)
at Kingdee.K3.FIN.App.Core.OutAcctg.AcctgStencil.BeforeExecuteServiceForShedule[T,K](Context ctx, T acctgParameters, CostAcctgServiceObject`1 service)
at Kingdee.K3.FIN.App.Core.OutAcctg.AcctgStencil.ExecutionBatchServiceObject[T,K](Context ctx, T acctgParameters, Dictionary`2 services, CostCalType calType, List`1 checkAttrs, Boolean isLast)
at Kingdee.K3.FIN.App.Core.OutAcctg.AcctgStencil.ExecutionCostCal(CostCalGlobalContext costCalGlobalContext, Context bosctx, Dictionary`2 calservice)
at Kingdee.K3.FIN.App.Core.OutAcctg.AcctgStencil.CostCal(ComputeContext ctx, CostCalGlobalContext costCalGlobalContext)
at Kingdee.K3.FIN.App.Core.OutAcctg.AcctgStencilService.CostAcctg(ComputeContext ctx, OutStockAcctgParameters acctgParameters)
Message:MERGE 语句试图多次更新或删除同一行。目标行与多个源行匹配时会出现这种情况。MERGE 语句无法多次更新/删除目标表的同一行。请简化 ON 子句,以确保目标行最多与一个源行匹配,也可以使用 GROUP BY 子句对源行分组。;StackTrace: at Kingdee.BOS.App.Data.AbstractDatabase.ExecuteNonQuery(DbCommand command, IEnumerable`1 listParam)
at Kingdee.BOS.App.Data.DBUtils.ExecuteBatchWithTime(Context ctx, List`1 lstSqlObj, Int32 commandTimeout)
at Kingdee.K3.FIN.CB.App.Core.ExpenseAllocate.Utils.ProOrderDime.UpdateProductDimeId(Context ctx, OutStockAcctgParameters acctgParameters, String tempTable)
at Kingdee.K3.FIN.CB.App.Core.ExpenseAllocate.Utils.ProOrderDime.InsertProorderDime(Context ctx, OutStockAcctgParameters acctgParameters)
at Kingdee.K3.FIN.CB.App.Core.ExpenseAllocate.ExpenseAllocateEngine.BeforeExpenseAllocated()
at Kingdee.K3.FIN.App.Core.OutAcctg.AbstractAcctgService.BeforeExecution[T](Context ctx, T acctgParameters)
at Kingdee.K3.FIN.App.Core.OutAcctg.AcctgStencil.BeforeExecuteServiceForShedule[T,K](Context ctx, T acctgParameters, CostAcctgServiceObject`1 service)
at Kingdee.K3.FIN.App.Core.OutAcctg.AcctgStencil.ExecutionBatchServiceObject[T,K](Context ctx, T acctgParameters, Dictionary`2 services, CostCalType calType, List`1 checkAttrs, Boolean isLast)
at Kingdee.K3.FIN.App.Core.OutAcctg.AcctgStencil.ExecutionCostCal(CostCalGlobalContext costCalGlobalContext, Context bosctx, Dictionary`2 calservice)
at Kingdee.K3.FIN.App.Core.OutAcctg.AcctgStencil.CostCal(ComputeContext ctx, CostCalGlobalContext costCalGlobalContext)
at Kingdee.K3.FIN.App.Core.OutAcctg.AcctgStencilService.CostAcctg(ComputeContext ctx, OutStockAcctgParameters acctgParameters)
推荐阅读