【发布时间】:2019-11-28 20:45:29
【问题描述】:
我们的一位开发人员将几百万行从表中插入到目标表中。 他使用while循环批量插入,现在在目标表中有大约500万个重复行。问题是PK是标识列,插入时他没有这样做
SET IDENTITY_INSERT DBO.TABLE_NAME ON
所以现在表中存在具有不同标识列值的重复条目。
如果我按如下所示分组:
group by COL2,COL3,COL4,COL5,COL6,COL7
我可以得到一个唯一的行。
谁能帮我创建脚本来删除重复记录。
【问题讨论】:
-
发布示例数据并阐明您认为哪些行重复并且要删除。
-
这不是脚本服务站点,如果遇到特定错误,请尝试提出解决方案并寻求帮助
-
这与 SET IDENTITY_INSERT ON 无关。插入的代码显然存在插入重复记录的缺陷,并且您没有任何唯一索引来强制唯一性。关于如何删除除一行重复行之外的所有其他问题,这里回答了很多其他问题,但这里的问题陈述不是很准确或清楚。
-
您在问题中甚至没有说清楚。如前所述,您听起来好像您认为这是生成重复项的原因。请返回并编辑您的问题以澄清它是什么,您在问什么,并显示示例。如果没有人知道你在问什么或为什么,没有人可以提供帮助。
-
那么你为什么不让你的“开发者”来写脚本呢?或者也许你们两个可以一起工作并从经验中学习?看来这里还有改进的余地。
标签: sql-server group-by insert primary-key identity