Миграция базы данных MS Access на SQL Server 2008 R2

У меня есть SQL Server 2008 R2, я хочу перенести данные из MS Access, но когда я попытался использовать SSMA, вариант выбора SQL Server 2008 R2 недоступен.

Любая помощь, пожалуйста, и полезен ли SSIS в моей ситуации?

Срок службы SQL Server 2008 и 2008 R2 истек более года назад, и теперь они имеют статус полностью не поддерживается. Вы действительно должны смотреть на обновление до поддерживаемой версии.

marc_s 17.03.2022 20:49

Если ваша БД не превысит 10 ГБ, SQLServer Express должен работать, и это бесплатно.

June7 17.03.2022 20:54

+1 выше к 7 июня. В любом случае вы можете использовать эту более позднюю версию ДАЖЕ для создания базы данных 2008 года. Тем не менее, я часто вижу, как некоторые компании «придерживаются» более старой версии, поскольку они заплатили за полную популярную версию, и она имеет более высокую емкость, чем sql express. Однако, если sql express можно использовать для рабочей базы данных, я бы рассмотрел его, но даже если нет, для задачи миграции это идеальный выбор и настройка.

Albert D. Kallal 17.03.2022 21:39
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
43
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Например, вы можете установить бесплатную версию SQL Server Express на свою рабочую станцию ​​и выполнить локальную миграцию (скажем, в формат SQL 2017).

В этот момент вы можете выбрать сценарий для базы данных, а более поздние версии SSMS (студия управления SQL), безусловно, поддерживают 2008 год. Например, это:

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

Из этого мы видим, что 2008 год еще можно заскриптовать.

Хотя, конечно, даже в последней версии sql-сервера вы МОЖЕТЕ создать базу данных более старой версии. Однако, когда вы создаете «предыдущую» версию базы данных (скажем, в последней версии сервера sql, это только ограничивает функции совместимости, но НЕ позволяет вам использовать или создавать резервный файл, созданный для восстановления в предыдущих версиях sql-сервер (сервер sql в этом плане неприятный - вы можете ТОЛЬКО продвигаться вперед с базами данных - отличная возможность, но как только вы переедете, вы не сможете использовать или создавать файлы резервных копий, которые могут быть использованы предыдущими версиями. к предыдущим версиям.

И отчасти это зависит от того, сколько времени вы потратили на использование SSMAA.

И если вы пойдете по указанному выше пути, убедитесь, что вы настроили сопоставления столбцов. Так, например, по умолчанию datetime в доступе преобразуется в datetime2, и я не совсем помню, поддерживает ли 2008 datetime2. (независимо от того, я бы все равно придерживался даты и времени).

Таким образом, даже используя последнюю версию помощника по миграции, вы можете установить (настроить) сопоставления столбцов, и в большинстве случаев вам потребуется 1 или 2 изменения (например, установка по умолчанию даты и времени вместо типов столбцов datetime2).

А получение и настройка SQL Express Local — отличный способ снова и снова тестировать миграцию, поскольку часто первые несколько попыток могут завершиться неудачно или не дать желаемых результатов. На самом деле это еще одна ОГРОМНАЯ причина для принятия SSMAA, поскольку вы можете потратить время на настройку и изменение некоторых вещей, а затем запустить его снова и даже снова.

Теперь, если вы создаете сценарий для всей базы данных (и данных), такие текстовые файлы ДОЛЖНЫ быть большими, и в большинстве случаев вы не можете использовать SSMS (студия управления sql) для загрузки такого сценария, поэтому используйте командную строку sqlcmd .exe для импорта (обработки) этой базы данных со сценариями, которую вы создаете с помощью мастера создания сценариев, описанного выше. Он выдает «большой» текстовый файл, который можно импортировать в 2008.

Я имею в виду, что даже в 2008 году и в ту эпоху SSMS у него есть опция импорта, и вы можете импортировать из баз данных доступа. Однако, когда вы делаете это, PK отбрасываются, индексы отбрасываются, а вместе с ними и отношения.

Итак, для 2-5 таблиц - гы, просто импортировать с помощью ssms.

Однако, если у вас 40 таблиц, куча связей? Тогда да, это большая работа, и я бы на 100% рекомендовал вам использовать помощник по миграции Access. (для изучения требуется немного времени - поначалу это немного сбивает с толку, но как только вы пройдете кривую обучения, я настоятельно рекомендую этот инструмент, если вы хотите переместить много таблиц, сохранить настройки PK и, конечно, сохранить связанные данные нетронутыми.

Другие вопросы по теме