MS Access "дублирующиеся значения" ошибка, но я не знаю, почему - PullRequest
0 голосов
/ 26 октября 2011

У меня есть программа VB6, которая добавляет столбец в базу данных MS Access, таким образом:

alter table x add column y long constraint z unique

Программа проходит ряд баз данных без ошибок; однако, на тот, который я сейчас смотрю, он дает мне «Изменения, которые вы запросили в таблице, не увенчались успехом, потому что они создали бы повторяющиеся значения в индексе, первичном ключе или отношении ...»

Если это имеет значение, я добавляю значения в столбец, формируя набор записей первичного ключа и новых значений столбца, а затем перебирая каждую запись, чтобы добавить значение в этот столбец. Я делаю recordSet.updateBatch, когда я все закончу.

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

Существуют ли другие причины, по которым я могу получить эту ошибку? Я действительно не хочу снимать ограничения, но я не знаю, как преодолеть это.

1 Ответ

0 голосов
/ 27 октября 2011

Поскольку вы уверены, что не пытаетесь вставить строки, которые нарушают ограничения индекса таблицы, возможно, у вас поврежденный индекс. Посмотрите, поможет ли Compact & Repair устранить проблему. Но сначала сделайте резервную копию базы данных.

Вы также можете воссоздать таблицу в новой базе данных и протестировать ее там.

Дополнительную информацию о коррупции можно найти в Tony Towes '1005 * Часто задаваемые вопросы о поврежденных базах данных Microsoft Access .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...