重现步骤
CODE:N10274014
Error:14_2627_1_-2146232060
SQL:      
                    if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#tbProductSku') and type='U')
                        drop table #tbProductSku;

                    create table #tbProductSku
                    (
                     SKU varchar(50) primary key
                    )

                    insert into #tbProductSku
                    select item as SKU from CharSplitForIn('15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15904376,15904376,15990682,15990682,15990682,15990682,15990682,15990682,15990682,15990682,15990682,15990682,15990682,15990682,15990682,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15903880,15904376,15904376,15904376,15904376,15904376,15904376,15904376,15904376,15904376,15904376,15904376,15904376,15990682,15904376,15990682,15904376,15903880,15903880,15903880,15990682,15903880,15904376,15990682,15990682,15956896,15903880,15956941,15990682,15956896,15956941,15903880,15956941,15956896,15990682,15990682,15903880,15956896,15956941,15903880,15990682,15956941,15904376,15956896,15903880,15903880,15956896,15990682,15956941,15903880,15990682,15956941,15956896,15903880,15990682,15956896,15956941,15990682,15990682,15990682,15990682,15990682,15990682,15990682,15903880,15904376,15990682,15903880,15990682,15956941,15956896,15903880,15990682,15956941,15956896,15903880,15903880,15990682,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15990682,15956896,15956941,15956941,15990682,15956896,15990682,15903880,15904376,15903880,15903880,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15956896,15956941,15994365,15994396,15994365,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994396,15994396,15994365,15994365,15994365,15994396,15956896,15956941,15994365,15994396,15956896,15994396,15956941,15994365,15903880,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994365,15994396,15994396,15994365,15994365,15994396,15994396,15994365,15994396,15994365,15994396,15994365,15994365,15994396',',');  SELECT p.DefaultLocalWarehouse AS WID,
                  rbwp.WareHouseName,
                  rbwp.WareHouseType,
                  p.SKU,
                  p.CustomerID
           FROM   RB_Product p(nolock)
                  inner join #tbProductSku ts
                    on p.SKU = ts.SKU
                  LEFT OUTER JOIN dbo.RB_WareHouse rbwp WITH (NOLOCK)
                    ON rbwp.ID = p.DefaultLocalWarehouse
                       AND rbwp.CustomerID = p.CustomerID
                  WHERE p.CustomerID=@CustomerID; drop table #tbProductSku;
PARAMS:@CustomerID = 1 ,
MESSAGE:Violation of PRIMARY KEY constraint 'PK__#tbProdu__CA1ECF0C02B8764C'. Cannot insert duplicate key in object 'dbo.#tbProductSku'. The duplicate key value is (15903880).
The statement has been terminated.
TRACE:   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
   在 RB.DAL.DBOperator.Query(String SQLString, SqlCommand cmd, Int32 Times, SqlParameter[] cmdParms, Boolean IsWriteDB)   在 RB.DAL.DBOperator.toCommonTipException(SqlException ex, String sql, SqlParameter[] cmdParms)
   在 RB.DAL.DBOperator.Query(String SQLString, SqlCommand cmd, Int32 Times, SqlParameter[] cmdParms, Boolean IsWriteDB)
   在 RB.DALExtend.RB_ProductExtend.GetGetWarehouseInfoModels(Int32 customerID, List`1 skus)
   在 PandaBuy.ERP.Web.IrobotBox.SalesAnalysis.AmazonBatchUpdateSalePrice.Save()
   在 PandaBuy.ERP.Web.IrobotBox.SalesAnalysis.AmazonBatchUpdateSalePrice.Page_Load(Object sender, EventArgs e)
   在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   在 System.Web.UI.Control.OnLoad(EventArgs e)
   在 System.Web.UI.Control.LoadRecursive()
   在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   在 System.Web.UI.Page.ProcessRequest()
   在 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   在 System.Web.UI.Page.ProcessRequest(HttpContext context)
   在 ASP.irobotbox_salesanalysis_amazonbatchupdatesaleprice_aspx.ProcessRequest(HttpContext context)
   在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   在 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
   在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
   在 System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error)
   在 System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb)
   在 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)
   在 System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
   在 System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)

-------------------------------------------------------------

优化建议:

主键值重复,取消主键,可用索引代替


历史记录  
  1. 2023-02-10 10:43:46, 由 吴高发 创建。
  2. 2023-02-10 10:45:01, 由 林鸿贵 指派给 何建宝。
    修改了 指派给,旧值为 "huxiaolong",新值为 "hejianbao"。
  3. 2023-02-10 14:26:39, 由 何建宝 指派给 林鸿贵。
    修改了 指派给,旧值为 "hejianbao",新值为 "linhonggui"。

    Listing那边的业务,找下翔宇

  4. 2023-02-10 18:36:50, 由 林鸿贵 指派给 王翔宇。
    修改了 指派给,旧值为 "linhonggui",新值为 "wangxiangyu"。
  5. 2023-02-14 11:05:29, 由 王翔宇 指派给 彭康。
    修改了 指派给,旧值为 "wangxiangyu",新值为 "pengkang"。
  6. 2023-02-14 11:27:40, 由 彭康 解决,方案为 重复BUG #34054 性能优化获取仓库信息 IN的 SKU 过多,导致SQL超时,建议改成表传值 。
    修改了 解决方案,旧值为 "",新值为 "duplicate"。
    修改了 重复ID ,旧值为 "0",新值为 "34054"。
    修改了 解决版本,旧值为 "",新值为 "651"。
    修改了 解决日期,旧值为 "",新值为 "2023-02-14 11:24:52"。
    修改了 指派给 ,旧值为 "pengkang",新值为 "wugaofa"。
    修改了 Bug状态 ,旧值为 "active",新值为 "resolved"。
    修改了 是否确认,旧值为 "0",新值为 "1"。
    修改了 解决者 ,旧值为 "",新值为 "pengkang"。
    之前已经修改,等主干发版
  7. 2023-02-14 14:58:35, 由 吴高发 指派给 林鸿贵。
    修改了 指派给,旧值为 "wugaofa",新值为 "linhonggui"。
    请关闭。
  8. 2023-02-14 17:32:10, 由 林鸿贵 指派给 李乐同。
    修改了 指派给,旧值为 "linhonggui",新值为 "liletong"。
  9. 2023-02-14 18:19:15, 由 李乐同 关闭。
    修改了 Bug状态 ,旧值为 "resolved",新值为 "closed"。
    修改了 指派给 ,旧值为 "liletong",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "liletong"。
    修改了 关闭日期,旧值为 "",新值为 "2023-02-14 18:19:15"。
  10. 2023-11-17 09:53:26, 由 刘超 编辑。
    修改了 所属模块,旧值为 "1740",新值为 "1863"。
所属项目 技术中心-需求池
所属模块 系统运维   性能优化
所属计划
所属迭代
Bug类型 程序BUG
严重程度 提示
优先级 P2
Bug状态 已关闭
业务部门
影响功能
开发责任人
测试责任人
解决时效 0
激活次数 0
激活日期
是否确认 是
当前指派 Closed 于 2023-02-14 18:19:15
截止日期 0000-00-00
上线时间
上线时效
操作系统
浏览器
关键词
抄送给
所属迭代
相关需求
相关任务
由谁创建 吴高发 于 2023-02-10 10:43:46
影响环境 577

由谁解决 彭康 于 2023-02-14 11:24:52
解决版本 2月1版主干
解决方案 重复BUG #34054:性能优化获取仓库信息 IN的 SKU 过多,导致SQL超时,建议改成表传值
由谁关闭 李乐同 于 2023-02-14 18:19:15
最后修改 刘超 于 2023-11-17 09:53:23
相关Bug