我得到这个错误:不能具有唯一索引在对象中插入重复键行的重复键值的SQL Server
Cannot insert duplicate key row in object 'dbo.CLIENT' with unique index 'CLIENT_idx_A'. The duplicate key value is (14441828, 1).
当我检查,各项指标,它的创建是这样的:
CREATE UNIQUE NONCLUSTERED INDEX [CLIENT_idx_A] ON [dbo].[CLIENT]
(
[SOURCE_SYSTEM_CLIENT_ID] ASC,
[SOURCE_SYSTEM_ID] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF, ONLINE = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
其实,我想更新SOURCE_SYSTEM_CLIENT_ID
中的一个值,而我的SOURCE_SYSTEM_ID
对于我想要更新的所有SOURCE_SYSTEM_CLIENT_ID
都是1。所以我认为,它遇到了重复。我该如何解决这个问题?
您遇到该错误,因为您将导致2条记录(338393005,1)。如果允许,您需要删除该索引。这是解决方案。 –
我是否需要删除索引,运行更新查询,然后再次创建索引?或者有什么方法可以删除索引? – AskMe
您的数据库被限制为不允许每个系统有多个客户端记录。如果此规则不再有效且允许重复,则可以删除索引,重新添加非唯一索引并运行更新。 – UnhandledExcepSean