MERGE声明在工作2年后失败

用户1745767

我的脚本每天都使用merge语句已有几年了,但是在10月6日,它停止工作并抛出错误:

消息8672,级别16,状态1,行1
MERGE语句尝试多次更新或删除同一行。当目标行与多个源行匹配时,就会发生这种情况。MERGE语句不能多次更新/删除目标表的同一行。优化ON子句以确保目标行最多匹配一个源行,或使用GROUP BY子句对源行进行分组。

我的脚本看起来像:

MERGE INTO dbo.energydata AS target
USING dbo.temp_energydata AS source ON target.webmeterID = source.webmeterID
                                    AND target.DateTime = source.DateTime
WHEN MATCHED THEN 
   UPDATE 
      SET target.kWh = source.kWh

WHEN NOT MATCHED BY TARGET THEN
   INSERT (webmeterID, DateTime, kWh)
   VALUES (source.webmeterID, source.DateTime, source.kWh);

它基本上从temp_table(temp_energydata)中获取数据,并将其与主表(energydata)合并。之所以使用合并,是因为临时表每天都包含重复数据,这样MERGE可以防止重复错误。

我意识到我将不得不提供更多的信息,因此,如果您可以让我知道如何进行调试,那将会很棒。

雷达

您的临时表中有重复的条目

运行此查询以获取那些重复项

  Select webmeterID, [DateTime]
  From dbo.temp_energydata
  Group by webmeterID, [DateTime]
  Having count(*) > 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

2年后如何自动删除mysql记录

来自分类Dev

工作超过4年后,自定义PC不会发布

来自分类Dev

20年后的解析日期

来自分类Dev

Android TextView 中的特殊字符在将近一年后停止在应用程序中工作?

来自分类Dev

Ubuntu Web服务器在4年后?

来自分类Dev

2038年后的momentjs夏令时

来自分类Dev

从2013年降级为2010年后Excel API的例外

来自分类Dev

LTS台式机在三年后是否可以获得任何更新?

来自分类Dev

2016年后Mac上的Silverlight:是否可以使用“浏览器外”(OOB)?

来自分类Dev

三年后,LTS将如何为Xubuntu提供支持?

来自分类Dev

一年后如何锁定Web移动应用程序?

来自分类Dev

在2008年后的Visual Studio中开发.NET Compact Framework应用程序?

来自分类Dev

PHP为什么新的DateTime('现在')在2038年后返回1970

来自分类Dev

如何在Laravel中设置一年后的到期日期

来自分类Dev

我怎样才能找到2000年后价格最高的书?

来自分类Dev

三年后,LTS将如何为Xubuntu提供支持?

来自分类Dev

LTS台式机在三年后是否可以获得任何更新?

来自分类Dev

从PHP中的给定日期检索1.3年后的日期

来自分类Dev

一年后如何锁定Web移动应用程序?

来自分类Dev

PHP的日期时间显示1970年后增加几个小时

来自分类Dev

5年后是否应该更换/升级硬盘驱动器?

来自分类Dev

为什么Objective-C需要2010年后的Mac?

来自分类Dev

是否出于防火原因建议在4年后更换计算机的电源?

来自分类Dev

在检查大于一年后对一系列数字求和

来自分类Dev

TFS显示名称在2010年迁移到2013年后随服务器移动而更改

来自分类Dev

运行4年后,我现在在MS Access 2010数据库中收到“无效使用Null”错误

来自分类Dev

运行4年后,我现在在MS Access 2010数据库中收到“无效使用Null”错误

来自分类Dev

虚拟设备或磁盘映像-几十年后更有可能运行

来自分类Dev

有什么原因为什么我不应该在2016年后的现代浏览器中使用window.postMessage API?

Related 相关文章

  1. 1

    2年后如何自动删除mysql记录

  2. 2

    工作超过4年后,自定义PC不会发布

  3. 3

    20年后的解析日期

  4. 4

    Android TextView 中的特殊字符在将近一年后停止在应用程序中工作?

  5. 5

    Ubuntu Web服务器在4年后?

  6. 6

    2038年后的momentjs夏令时

  7. 7

    从2013年降级为2010年后Excel API的例外

  8. 8

    LTS台式机在三年后是否可以获得任何更新?

  9. 9

    2016年后Mac上的Silverlight:是否可以使用“浏览器外”(OOB)?

  10. 10

    三年后,LTS将如何为Xubuntu提供支持?

  11. 11

    一年后如何锁定Web移动应用程序?

  12. 12

    在2008年后的Visual Studio中开发.NET Compact Framework应用程序?

  13. 13

    PHP为什么新的DateTime('现在')在2038年后返回1970

  14. 14

    如何在Laravel中设置一年后的到期日期

  15. 15

    我怎样才能找到2000年后价格最高的书?

  16. 16

    三年后,LTS将如何为Xubuntu提供支持?

  17. 17

    LTS台式机在三年后是否可以获得任何更新?

  18. 18

    从PHP中的给定日期检索1.3年后的日期

  19. 19

    一年后如何锁定Web移动应用程序?

  20. 20

    PHP的日期时间显示1970年后增加几个小时

  21. 21

    5年后是否应该更换/升级硬盘驱动器?

  22. 22

    为什么Objective-C需要2010年后的Mac?

  23. 23

    是否出于防火原因建议在4年后更换计算机的电源?

  24. 24

    在检查大于一年后对一系列数字求和

  25. 25

    TFS显示名称在2010年迁移到2013年后随服务器移动而更改

  26. 26

    运行4年后,我现在在MS Access 2010数据库中收到“无效使用Null”错误

  27. 27

    运行4年后,我现在在MS Access 2010数据库中收到“无效使用Null”错误

  28. 28

    虚拟设备或磁盘映像-几十年后更有可能运行

  29. 29

    有什么原因为什么我不应该在2016年后的现代浏览器中使用window.postMessage API?

热门标签

归档