删除重复

时间:2018-01-04 08:27:30

标签: mysql sql-server

尝试更新表时出错。 当我更新表时,我收到错误消息:

  

消息2601,级别14,状态1,行1无法插入重复的键行   对象'dbo.DimAdmin'具有唯一索引'Admin_UserID'。重复   关键值是(C2Botha)。

当我使用SQL Assist查看表属性时,我在我正在尝试更新的字段旁边看到一个闪电图标。这个ightning bolt图标是什么意思?这是否意味着该字段不能包含重复值。

请告知

2 个答案:

答案 0 :(得分:0)

错误非常清楚,告诉您已经有UserIDC2Botha的记录。该列上有一个唯一索引。所以,你不能在同一个插入另一个。这里有两个选择。

  1. 删除现有记录并小心。它可能会导致 相关数据问题。

  2. 或者您可以更新现有记录。

答案 1 :(得分:0)

错误消息显示您尝试更新或插入的列已在任何行中具有该值。

由于您已创建了一个UNIQUE索引,因此该列不能有重复项

因此,请确保对于列,“C2Botha”值不存在。

在插入记录之前检查是否存在。或者也有可能如果您的插入列表有重复项,那么它将抛出相同的错误,并且不会在表中的存在性检查查询中捕获。

您可以通过以下任一方式检查存在

IF NOT EXISTS(SELECT 1 FROM Yourtable WHERE <Condition>)
BEGIN
<Insert Query>
END

或喜欢这个

INSERT INTO YourTable1
SELECT
* 
FROM YourTable2 YT2 WHERE NOT EXISTS
(
SELECT 1 FROM YourTable1 YT1 WHERE YT1.ID = YT2.ID
)