C# 无法使用C删除SQL Server中的重复记录#

C# 无法使用C删除SQL Server中的重复记录#,c#,sql-server,delete-row,C#,Sql Server,Delete Row,在通过windows窗体插入记录时,我意外地插入了一条记录两次,因为它没有反映在窗体本身的数据网格视图中。现在我无法删除那个重复的记录。我试图添加唯一键,但由于该行重复,该操作失败。我也试图设置主键,但操作也失败了。我不能手动从表中删除它。错误消息如下所示: 错误源:Microsoft.VisualStudio.DataTools。 错误消息:更新或删除的行值不会使该行唯一,或者会更改多行(2行) 如何更新或删除该行?首先,您必须添加注释中提到的唯一标识符,不应添加 这是一个大问题 在所有行具有

在通过windows窗体插入记录时,我意外地插入了一条记录两次,因为它没有反映在窗体本身的数据网格视图中。现在我无法删除那个重复的记录。我试图添加唯一键,但由于该行重复,该操作失败。我也试图设置主键,但操作也失败了。我不能手动从表中删除它。错误消息如下所示:

错误源: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) 

删除重复项的命令:

DELETE FROM YOURTABLE
WHERE  ID NOT IN (SELECT MAX(ID)
                  FROM   YOURTABLE
                  GROUP  BY OLD_DUPLICATE_VALUE
                  HAVING MAX(ID) IS NOT NULL) 
执行命令后的示例表:

DELETE FROM YOURTABLE
WHERE  ID NOT IN (SELECT MAX(ID)
                  FROM   YOURTABLE
                  GROUP  BY OLD_DUPLICATE_VALUE
                  HAVING MAX(ID) IS NOT NULL) 


如果您打算尝试,请确保您正确理解该命令!如果你不知道自己在做什么,它可能会有点危险。

你为什么要用C来删除它,你可以直接写一些SQL吗?我也尝试过使用“删除”查询。仍然出现相同的错误。将您创建的删除查询添加到问题中。作为替代,您可以删除并创建该表。每行是否都有唯一的标识符?非常感谢…我尝试了此查询,但它删除了最后一条记录…所以最后一条记录的ID列存在差异..所以我也删除了最后一条记录…现在我没有重复的记录…非常感谢您的帮助。任何时候,很高兴我能帮上忙。