Задать вопрос
zvepb
@zvepb

Как обойти ошибку создания уникального индекса?

Ошибка при переходе из файловой 1С 7.7 на MS SQL при загрузки данных в SQL:
Message: [Microsoft] [ODBC SQL Server Driver] [SQL Server] Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем "dbo.SC31" и индекса с именем "IDD".

Были проверены и переименованы дубли документов, с помощью своей обработки.
Ошибка осталась, хотя по всем объектам дубли больше не найдены.
Можно ли со стороны SQL это решить? Например, с помощью скрипта SQL который бы отслеживал запись и при возникновении ошибки переименовал объект допустим?
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@Dementor
программист, архитектор, аналитик
Можно ли со стороны SQL это решить ? Например, с помощью скрипта SQL который бы отслеживал запись и при возникновении ошибки переименовал объект допустим ?

Т.е. вы предлагаете сделать триггерную функцию, которая во время добавления данных делала проверку их уникальности и вносила изменения в данные при наличии проблем? Звучит сложно. Ведь вам всего лишь один раз нужно файловую базу залить на скуль.

Ошибка осталась, хотя по всем объектам дубли больше не найдены.

Я бы на ваш месте не угадывал, а проверил бы поля из индекса IDD для таблицы dbo.SC31 - если скуль ругается, то вы точно что-то пропустили. Сделайте SELECT с GROUP BY этим полям и HAVING COUNT(*) > 1
Ответ написан
Комментировать
@elderl
Никак.
IGNORE_DUP_KEY работает только при вставке данных. При создании индекса не работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы