Ошибки · Решение
SQL Server ошибка 2601: что означает и как исправить
INSERT/UPDATE нарушает уникальный индекс: ключ уже существует.
Короткий ответ
SQL Server error 2601 — Cannot insert duplicate key row. Сообщение Database Engine нужно разбирать вместе с объектом, statement и контекстом подключения/транзакции.
Что означает ошибка
INSERT/UPDATE нарушает уникальный индекс: ключ уже существует.
Возможные причины
- Повторно вставляется существующий unique key.
- Конкурентные запросы одновременно создают одну сущность.
- Уникальный индекс не совпадает с предположениями приложения.
Что проверить
- Прочитайте имя unique index и duplicate key из ошибки.
- Проверьте существующую строку по ключу.
- Сопоставьте транзакции, которые могут одновременно делать insert.
Безопасные шаги
- Сделайте создание идемпотентным или корректно обработайте конфликт.
- Исправьте ключ, если дубликат является ошибкой входных данных.
- Не отключайте уникальный индекс ради обхода 2601 без изменения модели данных.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если SQL Server 2601 повторяется после проверки указанного объекта и контекста, приложите полный текст ошибки, query/plan и состояние транзакции DBA или владельцу приложения.
Похожие ошибки
- /errors/sql-server-error-102/
- /errors/sql-server-error-823/
- /errors/sql-server-error-824/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.