Ошибка увеличения размера базы данных MS-Access

1477
Dave Long

Я работаю над увеличением размера базы данных MS-Access с Access 2010 до MS-SQL 2008 (10.0.1600). Когда я запускаю Upsizing Wizard, все таблицы переносятся, кроме одного ...

Таблица, которая не перемещается, содержит ~ 18 000 записей, и во многих именах столбцов есть пробелы. Я просто не уверен, как выяснить, почему стол не перемещается. Полученная ошибка говорит только о том, что «вкладка пропущена или экспорт не выполнен». Я не знаю, как получить доступ, чтобы предоставить мне более полезную ошибку, чем эта.

До сих пор я подтвердил, что ошибка не вызвана:

  • Неверные типы данных (да / нет, дата и т. Д.)
  • Пробелы в именах столбцов
1

4 ответа на вопрос

1
Bryan Varney

Я столкнулся с подобной проблемой. Оказалось, что у меня было поле, в котором было установлено автоинкремент в качестве поля идентификации. Структура таблицы была перенесена в SQL Server, но данные не были импортированы. У меня еще не было возможности продвинуться так далеко, но я планирую установить для свойства идентификации значение «НЕТ», а затем после успешного разделения базы данных установить для свойства значение «ДА». Это, вероятно, только одна из многих возможностей.

0
Randolf Richardson

Есть ли в ваших других таблицах пробелы в именах столбцов? Если нет, то вы можете попробовать переименовать столбцы, изменив пробелы на что-то вроде подчеркивания («_»), а затем использовать команды «ALTER TABLE» SQL на консоли сервера MS-SQL, чтобы вернуть столбцы обратно (если это поддерживается).

Но использование пробелов в именах столбцов не рекомендуется, так как это может привести к всевозможным сложностям (особенно с цитированием частей SQL-команд и предотвращению атак с использованием инъекций и т. Д.), А также к проблемам, особенно в тех случаях, когда в них вовлечено больше разработчиков. Я рекомендую перейти на подчеркивание и соответственно обновить ваш код.

Я предполагал, что проблема была подчеркнута. Есть ли быстрый способ изменить около 100 имен столбцов? Что-то регулярное выражение поиска пробелов и замены на подчеркивания. Dave Long 13 лет назад 0
В MS-Access? Я не знаю об этом, но я не использую MS-Access уже более десяти лет, поэтому возможно, что есть вариант. Регулярное выражение, которое заменяет пробелы на подчеркивания, может выглядеть примерно так: / / _ / Randolf Richardson 13 лет назад 0
пробелы не были проблемой. Изменил все на подчеркивания, и я все еще получаю смутную ошибку. Dave Long 13 лет назад 0
Ну, по крайней мере, вы исключили это. Я зарегистрировал максимально допустимое количество столбцов, и MS-SQL, кажется, имеет ограничение, намного превышающее 100, так что, вероятно, это тоже не так. знак равно Randolf Richardson 13 лет назад 0
Используете ли вы какие-либо специальные символы в именах столбцов? Все они должны начинаться с буквы или символа подчеркивания и содержать только буквы, цифры и / или символы подчеркивания. Если у вас есть другие персонажи, это может быть проблемой. Randolf Richardson 13 лет назад 0
Нету. Нет цифр или специальных символов. Dave Long 13 лет назад 0
Какие-нибудь действительно длинные имена столбцов, которые могут быть слишком длинными для обработки MS-SQL? Как насчет генерации команды CREATE TABLE со всеми столбцами и посмотреть, можно ли запустить ее вручную из командной строки SQL? Если таблица не может быть создана таким образом, то, надеюсь, стандартный ответ об ошибке в стиле SQL может дать некоторые полезные подсказки. Randolf Richardson 13 лет назад 0
Кажется, таблица создается, но данные не переносятся. Мне интересно, есть ли испорченная запись. Я где-то читал, что вам нужно использовать настройку безопасного соединения для больших объемов данных, поэтому я пытаюсь это сейчас. Dave Long 13 лет назад 0
Если данные заблаговременно не указаны в кавычках, значит, виновен используемый вами инструмент преобразования. Например, если апостроф содержится в столбце одной из ваших записей, его необходимо правильно указать в кавычках, иначе вы получите синтаксическую ошибку из SQL. Randolf Richardson 13 лет назад 0
0
john

для ухмылок (должен быть быстрым, чтобы попытаться устранить неисправность / проверить работоспособность) запустите запрос таблицы составления, содержащий все поля, но с очень короткими именами в выходных полях (например, fname: [Имя пользователя]), хорошо соблюдая все Короче, одним словом. После этого у вас будет дублирующаяся таблица, и вы сможете связываться с обновлениями типов данных и т. Д. При изменении таблицы и попытке ее увеличения.

надеюсь, кто-то вступит в реальное техническое ограничение, с которым вы сталкиваетесь, но когда я сталкиваюсь с этим, я нахожу, что лучше всего добраться до действительно базовых структур и перейти к тому, что я хочу сделать - маленькие шаги, одно изменение в время - ваше право подвергать сомнению точность сообщений об ошибках - я получил такие вводящие в заблуждение сообщения от sql, и конкретно обращаюсь - не просто расплывчато, но явно вводит в заблуждение, ошибочно, что либо сообщение об ошибке, либо проблема настолько распространены и конкретны, что ответ на первых 5 страницах результатов Google или это так плохо, я просто возвращаюсь к основам и перебираю сложные вещи, которые я на самом деле ищу

0
David W. Fenton

Мастер изменения размеров, который поставляется с Access, всегда находится за кривой, поскольку он может работать только со старыми версиями SQL Server.

Правильный инструмент для увеличения размера - SQL Server Migration Assistant for Access. Это гораздо более гибко и намного умнее в том, что он может делать. Он также обновлен в соответствии с последней версией SQL Server.

С его помощью вы можете просмотреть, что будет делать операция увеличения размера, и исправить проблемы, если таковые имеются. Одна вещь, которую я обнаружил, что она не может сделать, это правильно интерпретировать определенные виды правил проверки на уровне поля. В противном случае, это неплохо: помечать проблемы и точно определять, что нужно изменить.

Спасибо Дэвид. Я могу понять, что мастер по увеличению размера Access работает только с предыдущими версиями SQL Server, но для Access 2010 работа с SQL Server 2008 на мой взгляд немного невероятна. Dave Long 13 лет назад 0
R2 вышел после A2010, я думаю. Или, может быть, прошло всего несколько месяцев, но главная проблема в том, что они были в разработке одновременно, и, возможно, это не укладывалось в график. SSMA просто намного более универсален и гибок, чем мастер увеличения, главным образом потому, что он позволяет вам протестировать процесс, чтобы увидеть, что не работает должным образом, и затем вы можете вносить изменения в вашу базу данных Access (и данные, которые она содержит) чтобы избежать проблем. David W. Fenton 13 лет назад 0