gifts2017

Исправление проблемы "CREATE UNIQUE INDEX terminated because a duplicate key was found for index..." для SQL

Опубликовал Антон Юхлин (antonrost) в раздел Программирование - Практика программирования

Исправление проблемы "CREATE UNIQUE INDEX terminated because a duplicate key was found fo index" для SQL.
Кнопка "Сформировать" - посмотреть список "проблемных" записей.
Кнопка "Исправить перезаписью..." - перезаписывает проводки документов, попавших в таблицу, т.е. сперва необходимо нажать кнопку "Сформировать".
Кнопка "Исправить запросом" - прямой sql запрос. Работает независимо от того, заполняли предварительно таблицу или нет.

Внимание!!!
Исправлять надо все 4 таблицы, иначе возможны интересные глюки при формировании бух. запросов.

Скачать файлы

Наименование Файл Версия Размер
- 218
.zip 8,29Kb
25.09.09
218
.zip 8,29Kb Бесплатно

См. также

Вознаграждение за ответ
Сумма: 0 $m
Добавили:
Роман Сюзев (sorb) (0.09 $m)
Подписаться Добавить вознаграждение
Комментарии
1. Доржи Цыденов (harleq) 19.06.06 15:21
А можно узнать подробнее об этой проблеме?
2. AntonRost (antonrost) 19.06.06 15:26
Проблема возникает на больших sql базах при большом количестве документов, записанных в пределах одной секунды (как правило - 23:59:59).
В этом случае иногда возникает ситуация, при которой время документа не соответствует времени проводок по этому документу. При реструктиризации таблицы _1sjourn возникают 2 записи с одинаковым ключевым полем (что недопустимо). В принципе, решается выгрузкой/загрузкой, но в один прекрасный момент наступает предел (zip > 2 Гб). В этом случае спасает только прямой SQL запрос.
rendalina; sway85; +2 Ответить
3. AntonRost (antonrost) 19.06.06 15:30
Да, забыл... Еще решается удалением и повторным созданием проводок у проблемных документов. Или просто перепроведением (если это возможно).
4. Evg 09.09.06 19:32
Падает 1С-ка при работе данной обработки, пробовал сформировать падает, исправить запросом тоже падает. Почему ?
5. Evg 09.09.06 19:33
Да чуть не забыл, конфа комплексная 462, 7.7 25 билд, 1C++ последний
6. Анатолий Ситников (acsent) 10.09.06 01:19
Реально на таком ломаном английском ошибка выходит?
7. AntonRost (antonrost) 11.09.06 07:58
Использует 1с++ dll, поэтому падает если ранее был загружен formex.dll.
8. Влад Богатый 26.09.06 01:20
formex.dll - не загружал
а программа падает .

Выскакиваеттакое сообщение

Message: [Microsoft][ODBC SQL Server Driver][SQL Server]CREATE UNIQUE INDEX terminated
because a duplicate key was found for index ID 2. Most significant
primary key is ' 43 '.

Стоит 1с вер 7.7.023+ Win 2000+ SQL 2000

Я создаю пустую базу. Загружаю МД. файл - потом выгружаю информацию.
Загружаю в пустую базу и выдает это сообщение

Что это может быть.
К меня вообще никаких записей нет. Что может дублироваться?

Спасибо заранее
vladibor@ukr.net
9. romix 26.09.06 07:49
Спасиб, буду знать почему такая ошибка.
10. Катерина Т. (LusiCat) 20.02.11 14:04
11. Роман Сюзев (sorb) 25.09.12 22:08
интересует один момент: был запущен пересчет итогов, в процессе вылезла сия ошибка, в базу для запуска обработки естественно уже зайти невозможно. Удалил дубли в 1scrdoc ручками, зашел, прогнал обработку, все ок (автору спасибо). НО! Неуникальных уников было порядка сорока, руками чистить утомительно. Не будет ли большого зла во временном отключении уникальности для проблемного индекса (чтобы просто в базу зайти)?
12. Юлия Тараруева (rendalina) 12.08.13 06:37
Антон, спасибо большое, обработка очень помогла.
Но при исправлении дублей в _1sentry прямым sql-запросом, проводки исчезают из оборотно-сальдовой ведомости, а при перепроведении документа появляются назад.
Можно ли потом как-то отследить такие "пропавшие" проводки?

Не возникнет ли каких-то подобных "побочных эффектов" при удалении дублей в _1soper прямым sql-запросом? А то там много дублей возникает, перепроводить долго получается, да и не все документы перепроводятся по различным причинам. А по кнопке "Исправить список перезаписью операций" дубли не убираются.