在通过Windows窗体插入记录时,我意外插入了一条记录两次,因为它没有反映在表单本身存在的数据网格视图中。现在我无法删除该重复记录。我试图添加唯一的密钥,但该操作失败,因为该重复行。我也尝试设置主键,但该操作也失败了。我无法手动将它从表格中删除。错误消息如下:无法使用C#删除SQL Server中的重复记录
错误来源:Microsoft.VisualStudio.DataTools。
错误消息:更新或删除的行值不会使行唯一,或者它们会更改多行(2行)。
如何更新或删除该行?
在通过Windows窗体插入记录时,我意外插入了一条记录两次,因为它没有反映在表单本身存在的数据网格视图中。现在我无法删除该重复记录。我试图添加唯一的密钥,但该操作失败,因为该重复行。我也尝试设置主键,但该操作也失败了。我无法手动将它从表格中删除。错误消息如下:无法使用C#删除SQL Server中的重复记录
错误来源:Microsoft.VisualStudio.DataTools。
错误消息:更新或删除的行值不会使行唯一,或者它们会更改多行(2行)。
如何更新或删除该行?
首先,您必须添加注释中提到的唯一标识符,这不应该是 这样做的一个大问题。
在所有行都有唯一标识符(例如它将是:ID)后,您将能够编写一个命令,根据具有较低数值的ID删除重复项。
执行命令之前的一个例子的表:
命令删除重复:
DELETE FROM YOURTABLE
WHERE ID NOT IN (SELECT MAX(ID)
FROM YOURTABLE
GROUP BY OLD_DUPLICATE_VALUE
HAVING MAX(ID) IS NOT NULL)
已经执行的命令之后的示例的表:
如果您打算试用它,请确保您正确理解该命令!如果你不知道自己在做什么,它可能会稍微有点流血。
非常感谢你......我试过这个查询,但它删除了第二个最后的记录......所以最后一个记录的ID列有所不同......所以我也删除了最后一个记录......现在我不有重复的记录...非常感谢你的帮助。 –
随时,很高兴我能帮上忙。 – jonathana
你为什么要用C#来删除它,你能直接写一些SQL吗? –
我也试过使用“删除”查询。仍然得到相同的错误。 –
将您创建的删除查询添加到问题中。 – Igor