![]() |
![]() |
![]() |
|
Ошибка SQL State: 23000 CREATE UNIQUE INDEX terminated because a duplicate key w Ø |
☑ | ||
---|---|---|---|---|
0
cus1
20.03.06
✎
11:23
|
Доброго дня.
Конфигурация "1С:Бухгалтерия 7.7" измененная типовая по MS SQL Server 2000 (SP3). После тестирования и исправления базы с реиндексацией, проверкой логической целостности, пересчетом служебных данных, пересчетом итогов – база не грузится в монопольном режиме и выдает следующую ошибку: SQL State: 23000 Native: 1505 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 ‘ 5NLX ’ SQL State: 01000 Native: 3621 Message: [Microsoft][ODBC SQL Server Driver][SQL Server] The statement has been terminated. После ручного удаления повторяющихся ключей из таблицы _1SCRDOC и последующего тестирования и исправления базы ситуация с ошибкой повторяется. Не помогает также полное удаление записей из таблицы _1SCRDOC с последующих тестированием и исправлением базы. Вопрос как бороться с повторяющимися ключами и из-за чего они могут возникать? |
|||
1
Мымра
20.03.06
✎
11:28
|
ФАК, конечно, мы проигнорировали...
|
|||
2
eyerie
20.03.06
✎
11:28
|
Из _1SCRDOC удалять строки, нарушающие уникальность индекса бесполезно, так как эта таблица ссылок генерируется автоматически при пересчёте итогов. Причина данной ошибки несколько глубже.
|
|||
3
cus1
20.03.06
✎
11:44
|
Забыл сказать релиз 1С -25й, сложных проводок не делалось. Единственно что такая ситуация стала возникать после инсталляции МОДа на текущую базу.
|
|||
4
cus1
20.03.06
✎
11:46
|
To (1). Я наверное туплю но в ФАКе по 1С+SQL никакого намека на решение проблемы не нашел :(
|
|||
5
eyerie
20.03.06
✎
11:58
|
(4)МОД здесь ни при чём...
Есть два пути, по которым можно сейчас пойти. Путь 1. Восстанови БД на состояние, предшествующее пересчету итогов. Потом, в спокойной обстановке, решай проблему с глючными документами, которые и дают впоследствии, при создании _1SCRDOC, дублирующий индекс. Путь 2. Если путь 1 по каким - то причинам не подходит, то: 1. Открой dds и определи те столбцы, для которых определён уникальный индекс. 2. Определи те документы, которые глючат. 3. Что с ними делать - решай сам... |
|||
6
eyerie
20.03.06
✎
12:01
|
5 + Естественно, при этом предполагается, что ты умеешь работать с QA и знаком с T-SQL...
|
|||
7
Абырвалг
20.03.06
✎
12:03
|
0. Удалить _1SCRDOC
------------------------ echo 1 - 17.05.05 - 13:21 была такая фигня. Проблема в следующем. В таблице _1CJournal для какого - то документа время не согласутся с временем проводок этого документа. QA пользоваться умеешь? ------------------------- Сава 2 - 17.05.05 - 13:30 если ты про вот этот скрипт, то я его запускал время он поменял, но пофиг - проблема не исчезла. UPDATE _1sentry SET DATE_TIME_DOCID=_1sjourn.DATE_TIME_idDOC FROM _1sentry (nolock), _1sjourn (nolock) WHERE _1sentry.DOCID=_1sjourn.idDOC AND _1sentry.DATE_TIME_DOCID<>_1sjourn.DATE_TIME_idDOC |
|||
8
Sergey Frolov
20.03.06
✎
12:04
|
В подобной ситуации, мне пришлост еще в 1СEntry связанную строку с 1SCRDOC убивать, потом документ с убитой строкой перепроводить...
|
|||
9
echo
20.03.06
✎
12:08
|
(7)Да, действительно был такой случай. Удалять _1SCRDOC бессмысленно, так как при пересчёте итогов эта таблица формируется заново...
|
|||
10
echo
20.03.06
✎
12:10
|
Я решил проблему следующим образом: удалил одну строчку в _1CJournal для того документа, у которого не согласуется время. При этом все итоги сохранились, а документ просто пропал из журнала документов...
|
|||
11
echo
20.03.06
✎
12:16
|
(8) Только при этом надо быть на 100% уверенным, что не менялся модуль проведения документа, не то проводки будут отличаться от удалённых...
|
|||
12
cus1
20.03.06
✎
12:53
|
To(5): Насколько я понял из структуры таблицы _1SCRDOC поле [CHILDID] - и есть ссылка на поле [IDDOC] в таблице 1SJOURN? И если грохнуть по этим ссылкам строки в 1SJOURN по которым в _1SCRDOC дает повторяющиеся ключи то по идее проблема решится?
|
|||
13
Абырвалг
20.03.06
✎
12:59
|
(12) Удали _SSCRDOC и выполни тот запрос. все!
|
|||
14
echo
20.03.06
✎
13:15
|
(13) Прокоментируй, пожалуйста, зачем удалять _1SCRDOC, если при пересчете итогов эта таблица и так автоматически очищается, а потом заполняется снова. Или для тебя это открытие?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |