2601: Cannot insert duplicate key row in object with unique index. The duplicate key value is ...(不能在具有唯一索引的对象中插入重复键行。重复键值为 ...)
SQL Server含义
UNIQUE INDEX 因重复键值拒绝了一行。约束引发 2627,唯一索引引发 2601。
原因
向受 UNIQUE INDEX 保护的列再次写入已有值、并发插入,或筛选唯一索引覆盖的行之间发生冲突。
解决方法
删除或更新重复值。如果必须容忍重复,考虑 IGNORE_DUP_KEY = ON 选项(重复行会被静默跳过)。插入前添加 NOT EXISTS 检查。如果存在筛选索引,核实其 WHERE 子句和冲突情况。
同一数据库的其他条目
- 1205Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim(事务(进程 ID)与另一个进程在锁资源上发生死锁,已被选为死锁牺牲者)
- 2627Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object(违反 PRIMARY KEY / UNIQUE KEY 约束。不能在对象中插入重复键)
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint(INSERT/UPDATE/DELETE 语句与 FOREIGN KEY / CHECK 约束冲突)
- 18456Login failed for user(用户登录失败)
- 8152String or binary data would be truncated(字符串或二进制数据将被截断)
- 2628String or binary data would be truncated in table, column ...; truncated value(表、列 ... 中的字符串或二进制数据将被截断;截断的值)