#0
by Чес
При загрузке в монопольном режиме SQL ругается: 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 ' 6OJ '. Решение описано тут: Вношу свои предложения: Arhitektor искал дублирования записи по ключу, заданному определенным индексом методом монопольного входа в 1С после исправления каждой ошибки. Есть более рациональный метод: Немного теории: SQL пытается создать ключ из нескольких полей, при анализе файла 1Cv7.DDS видим следующее #=============================================================================== #==TABLE no 4 : Ссылки документов # Name |Descr |SQLTableNam|RecordLock T=1SCRDOC |Ссылки документов |_1SCRDOC | #-----Fields------- # Name |Descr |Type|Length|Precision F=ROW_ID |Row ID |I |0 |0 F=MDID |Md ID of select |I |0 |0 F=PARENTVAL |Parent Value |C |23 |0 F=CHILD_DATE_TIME_IDDOC |Child date |C |23 |0 F=CHILDID |Child Doc ID |C |9 |0 F=FLAGS |Flags of refers |Y |0 |0 #----Indexes------ # Name |Descr |Unique|Indexed fields |Type I=PK__1SCRDOC |ROW_ID |1 |ROW_ID |1 I=CHILD |Child Referenc|1 |CHILDID,MDID,PARENTVAL |0 I=PARENT |Parent Referen|1 |MDID,PARENTVAL,CHILD_DATE_TIME_IDDOC |0 Из части "Indexes" понятно, что дублирующиеся ключи SQL пытается создать из полей CHILDID,MDID,PARENTVAL Соотвественно, наша задача - сразу найти все записи в таблице, где эти поля дублируются для этого 1. Открываем Enterprise Manager 2. В списке баз находим нашу убитую, раскрываем 3. Щелкаем Tables, в списке таблиц находим _1SCRDOC 4. По ней правой кнопкой - Open Table - Query 5. И еще раз п.4, сейчас объясню зачем. В появившемся на экране конструкторе запросов пишем следующее: SELECT CHILDID, MDID, PARENTVAL, COUNT(*) AS cnt FROM _1SCRDOC GROUP BY MDID, PARENTVAL, CHILDID Нажимаем кнопку Run (с красным вопросительным знаком) Внизу появится таблица с результатами нашего запроса. Количество "дублей" может быть разное. Для каждого из них проделываем следующее: Во втором открытом конструкторе запросов пишем следующее: SELECT *, MDID AS Expr1, CHILDID AS Expr2, PARENTVAL AS Expr3 FROM _1SCRDOC 8ZYS - это то, что у вас находится в первом столбике первого запроса. Для каждого дубля копируете оттуда, вставляете в этот запрос и выполняете, пока дубли не закончатся :) После выполнения запроса внизу получаем результат. ищем записи, где поля CHILDID,MDID,PARENTVAL одинаковы (больше 2-х не встречал) Теперь одну из записей надо удалить. Какую - я, как и Архитектор, удалял с большим ID. не принципиально. В принципе все. Запускаете 1С в монопольном режиме - реиндексация - и Выходим! из предприятия, для того что бы сделать Выгрузку - загрузку данных. На этом все.
#5
by Чес
Корректировка: в после выполнения п.4 4. По ней правой кнопкой - Open Table - Query Выполняем следующий запрос: SELECT _1SCRDOC.* FROM (SELECT CHILDID, MDID, PARENTVAL, COUNT(*) AS cnt, MAX(ROW_ID) AS rd FROM _1SCRDOC GROUP BY MDID, PARENTVAL, CHILDID HAVING (COUNT(*) > 1)) DERIVEDTBL INNER JOIN _1SCRDOC ON DERIVEDTBL.rd = _1SCRDOC.ROW_ID Результатом запроса будут все строки, которые нам надо удалить.
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Ошибка SQL State: 23000 Native: 1505 - мое решение проблемы
- Ошибка SQL State: 23000 Native: 1505
- SQL State: HYT00 Native: 0 Message: [Microsoft][ODBC SQL Server Driver]Time
- Ошибка SQL 924 при просмотре процессов SQL 2000 +1C 77
- SQL ошибка - State 01000 Native: 10054
- Ошибка sql state: 23000 Native: 2627
- Странная ошибка "ошибка формата потока" с вылетом из сеанса
- Ошибка в SQL БД ЗиК 7.7, При загрузке данных выдается ошибка
- Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Ошибка SQL: Де
- v7: Ошибка СУБД.Внутренняя ошибка dbeng 8
- При отправке сообщения произошла ошибка : Общая ошибка MAPI
- Помогите восстановить базу после сбоя. Ошибка СУБД: Ошибка SQL....
В этой группе 1С
- Строка неограниченной длины
- v7: Покрасить строку в табличной части
- В бухгалтерии почему-то не проводится реализация!
- Как в Запросе получить сумму табличного поля документа.
- Не могу распечатать табличную часть документа
- v7: Как параметром запустить 1С в монопольном режиме ?
- Хочу в табличной части документа сделать реквизит типа таблица
- Вышла тестовая версия УТ 10.3
- При выполнении запроса 1С слетает
- Поясните по объединению конфы - окно настройки
- ЗУП. Оплата праздничных дней
- Автокаталог + 1С
- Vista отключить расчет оставшегося времени при копировании
- Как найти неиспользуемых контрагентов?
- v7: v8: Не могу сделать непроведенным или пометить на удаление документ
- Одна из строк исходного размера превышает допустимые размеры
- дробную часть суммы как отделить?
- внешние печатные формы
- v7: Как после выполнения запроса программно вставить поля сводной таблицы
- Как в запросе собрать последовательность дней пересекающихся периодов