在通過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