n1ro°
RU

Ошибки · Решение

SQL Server ошибка 2601: что означает и как исправить

INSERT/UPDATE нарушает уникальный индекс: ключ уже существует.

Редакция N1RO · Проверено

Короткий ответ

SQL Server error 2601 — Cannot insert duplicate key row. Сообщение Database Engine нужно разбирать вместе с объектом, statement и контекстом подключения/транзакции.

Что означает ошибка

INSERT/UPDATE нарушает уникальный индекс: ключ уже существует.

Возможные причины

  • Повторно вставляется существующий unique key.
  • Конкурентные запросы одновременно создают одну сущность.
  • Уникальный индекс не совпадает с предположениями приложения.

Что проверить

  • Прочитайте имя unique index и duplicate key из ошибки.
  • Проверьте существующую строку по ключу.
  • Сопоставьте транзакции, которые могут одновременно делать insert.

Безопасные шаги

  1. Сделайте создание идемпотентным или корректно обработайте конфликт.
  2. Исправьте ключ, если дубликат является ошибкой входных данных.
  3. Не отключайте уникальный индекс ради обхода 2601 без изменения модели данных.

Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.

Когда нужен сервис

  • Если SQL Server 2601 повторяется после проверки указанного объекта и контекста, приложите полный текст ошибки, query/plan и состояние транзакции DBA или владельцу приложения.

Похожие ошибки

  • /errors/sql-server-error-102/
  • /errors/sql-server-error-823/
  • /errors/sql-server-error-824/

Что учитывать

Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.

Официальный источник

Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.