尝试更新表时出错。 当我更新表时,我收到错误消息:
消息2601,级别14,状态1,行1无法插入重复的键行 对象'dbo.DimAdmin'具有唯一索引'Admin_UserID'。重复 关键值是(C2Botha)。
当我使用SQL Assist查看表属性时,我在我正在尝试更新的字段旁边看到一个闪电图标。这个ightning bolt图标是什么意思?这是否意味着该字段不能包含重复值。
请告知
答案 0 :(得分:0)
错误非常清楚,告诉您已经有UserID
为C2Botha
的记录。该列上有一个唯一索引。所以,你不能在同一个插入另一个。这里有两个选择。
删除现有记录并小心。它可能会导致 相关数据问题。
或者您可以更新现有记录。
答案 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
)