Перенос базы данных Microsoft Office Access в Microsoft SQL Server

Со временем в ходе может потребоваться перенос файл-серверной базы данных Microsoft Office Access (Access) в формат клиент-серверной СУБД. Обычно для этой цели используется ODBC. Однако для переноса в Microsoft SQL Server (MS SQL) СУБД Access и MS SQL имеют удобные специализированные средства.

Всего существует три способа переноса базы данных из Access в MS SQL. Рассмотрим их все на примере простой базы данных состоящей из двух таблиц и одного запроса.

Исходная база данных

Перенос базы данных средствами Access («Мастер преобразования в формат SQL Server»)

Для того чтобы начать перенос нужно нажать кнопку «SQL Server» в области «Перемещение данных» вкладки «Работа с базами данных».

В открывшемся окне нужно выбрать, куда будут перенесены данные.

Первый шаг экспорта

Возможны два варианта:

  1. Экспорт в уже существующую базу данных MS SQL;
  2. Создание новой базы данных (по умолчанию).

Задаём имя сервера, на который будем переносить базу данных, имя создаваемой базы данных и указываем имя пользователя и пароль для подключения.

Установка соединения

Далее предстоит выбрать таблицы, которые будут перенесены.

Выбор таблиц

Для выбора одной таблицы служит кнопка «>», а для выбора всех таблиц кнопка «>>». Для того чтобы отказаться от переноса предназначены кнопки «<» и «<<» соответственно.

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

Дополнительные параметры экспорта

Далее нужно указать Access, как следует поступить с исходной базой данных после экспорта.

Параметры приложения Access

Можно:

  • Создать новое клиент-серверное приложение с пользовательским интерфейсом Access;
  • Включить перенесённые таблицы в исходную базу данных в качестве внешних (по умолчанию);
  • Не выполнять никаких действий с исходной базой данных.

Когда вся необходимая информация собрана можно либо вернуться к одному из предыдущих шагов для проверки либо начать процесс переноса нажав кнопку «Готово».

Последний шаг перед экспортом

Ход процесса переноса наглядно отображается в специальном окне.

Ход экспорта

По завершении переноса, можно открыть SQL Server Management Studio и увидеть результат.

Результат экспорта

Этот способ наиболее прост и удобен, но, к сожалению, он позволяет переносить только таблицы и сопутствующие им элементы (индексы, связи и т.д.).

Импорт базы данных Access средствами Microsoft SQL Server

MS SQL может импортировать данные из самых различных источников. Но прямой импорт из Access возможен только для баз данных старого формата (.mdb).

Подробнейшую инструкцию по импорту таких баз данных можно найти здесь.

Импорт баз данных новых форматов (2007 и выше) гораздо сложнее.

Существует два способа решения данной задачи:

  • Предварительно экспортировать базу данных Access в старый формат.
    В таком случае, можно без проблем воспользоваться инструкцией приведённой по ссылке выше;
  • Использование ODBC.
    Создание источника данных для базы данных Access с последующим подключением через него из MS SQL Server.

К сожалению, способ, связанный с использованием ODBC, довольно сложен в случае 64-разрядных версий Windows.

Причина в том, что 64-разрядные версии MS SQL комплектуются 32-разрядными версиями SQL Server Management Studio. Данное обстоятельство приводит к тому, что базы данных Access, для которых источники данных были созданы на основе 64-разрядных драйверов, невозможно импортировать с помощью этой программы.

Выхода здесь опять же два (имеются в виду только способы с использование графического интерфейса):

  • Использовать 32-разрядные версии Windows, MS SQL, Office;
  • Использовать только 32-разрядный Access и сконфигурировать источник данных с помощью 32-разрядного диспетчера ODBC (обычно это файл C:\Windows\SysWOW64\odbcad32.exe);
  • Использовать альтернативное ПО для работы с MS SQL.

Однако даже, если всё-таки удастся наладить процесс импорта, пользы от этого может оказаться гораздо меньше, чем потрачено сил и времени.

При импорте переносятся только сами таблицы и их содержимое и больше ничего (сравните с возможностями предыдущего способа).

Также следует отметить, что при прямом импорте из Access частично решается проблема с экспортом запросов (через ODBC доступа к запросам нет ) . Но, запросы по умолчанию импортируются в базу данных MS SQL в виде обычных таблиц.

Импорт данных

К счастью, есть возможность более тонкой настройки параметров импорта и можно вручную заменить SQL запрос на создание таблицы запросом на создание представления.

Для этого нужно в окне на скриншоте выше для выбранного запроса Access нажать кнопку «Изменить».

В открывшемся окне нажать кнопку «Изменить SQL…»

Настройки импорта

Откроется окно редактирования SQL запроса, в котором, собственно, и нужно заменить запрос, сгенерированный автоматически

Исходный запрос

своим собственным.

Изменённый запрос

В результате, запрос из Access будет передан в базу данных MS SQL корректно, в виде представления, а не таблицы.

Конечно, подобные настройки это кропотливый ручной труд, требующий к тому же определённых знаний и навыков, но всё-таки, как говорится, «лучше, чем ничего».

Поэтому данный способ переноса баз данных Access в MS SQL больше подходит квалифицированным специалистам по обеим СУБД.

Ниже приведён пример импорта базы данных Access с помощью ODBC в 32-разрядной версии Windows. В 64-разрядной версии Windows при использовании 32-разрядной версии Access импорт осуществляется аналогично, но источник данных создаётся в 32-разрядном диспетчере ODBC.

Создаём источник данных.

Выбор драйвера

В открывшемся окне указываем его имя.

Создание источника данных

Затем нажимаем на кнопку «Выбрать» и указываем, к какой базе данных Access необходимо подключиться.

Выбор базы данных

Когда указаны имя источника и файл базы данных, остаётся нажать кнопку «Ok» и источник данных для нужной базы данных Access готов.

Готовый источник данных

Теперь можно приступать непосредственно к импорту базы данных в MS SQL.

Для этого в контекстном меню базы данных, в которую необходимо выполнить импорт, выбираем пункты «Задачи» -> «Импорт данных».

Вызов мастера импорта и экспорта

Откроется «Мастер импорта и экспорта данных»

Стартовое окно мастера

После нажатия кнопки «Далее» необходимо выбрать источник, из которого будут импортированы данные.

В раскрывающемся списке «Источник данных» необходимо выбрать «.Net Framework Data Provider for Odbc» (если не выбрано по умолчанию) и в строке Dsn в таблице указать имя созданного выше источника данных для базы данных Access. Строка подключения («Connection String») будет сформирована автоматически.

Указание источника данных

Далее необходимо указать в какую базу данных, какого экземпляра MS SQL импорт. Для этого после нажатия кнопки «Далее» выбираем в раскрывающемся списке «Назначение» либо «Microsoft SQL Server Native Client» (как показано на скриншоте ниже) либо «Microsoft OLE DB Provider for SQL Server», указываем нужную базу данных имя пользователя и пароль для подключения.

Настройка приёмника данных

Далее будет показано окно, в котором нужно указать способ импорта. Для импорта из Access лучше оставить значение по умолчанию.

Выбор типа копирования

Затем нужно выбрать таблицы, которые будут импортированы. Как уже было отмечено выше, при использовании ODBC импорт запросов Accessне доступен. Поэтому, в отличие от предыдущего скриншота со списком объектов для импорта в этом списке будут исключительно таблицы.

Выбор таблиц

С помощью флажков можно выбрать как все таблицы сразу (что и сделано в этом примере), так и некоторые из них в отдельности.

После нажатия на кнопку далее будет показано окно предупреждением. Его можно просто проигнорировать и нажать кнопку «Далее».

Предупреждение

Затем будет показано окно с окончательными настройками процесса импорта. Оставим все значения по умолчанию.

Окончательная настройка

Далее отобразится завершающее окно с общей итоговой сводкой информации о предстоящем процессе импорта.

Итоговая информация об импорте

После нажатия на кнопку «Готово» процесс импорта будет выполнен. Если всё сделано правильно и импорт выполнен успешно, окно с информацией о выполнении импорта не будет содержать ошибок (см. скриншот ниже).

Импорт

Для завершения работы мастера достаточно нажать кнопку «Закрыть».

Результат можно увидеть SQL Server Management Studio.

Результат bмпорта

Перенос базы данных со стороны средствами ODBC

Этот способ является универсальным для экспорта данных из Access в любую другую СУБД. Достаточно только чтобы она поддерживала работу с ODBC.

Пример такого экспорта уже был ранее рассмотрен в статье «Работа с базой данных SQLite средствами Access»

Для MS SQL данный способ переноса базы данных из Access не желателен, так как экспортируются только таблицы с данными, а запросы экспортируются только в виде обычных таблиц.

Однако такая возможность переноса до сих пор имеется (версия 2014 не стала исключением). Поэтому, рассмотрим и её тоже.

Для начала создадим источник данных для работы с MS SQL (пусть это будет пользовательский DSN).

Укажем драйвер для источника.

Создание источника данных

После этого будет запущен процесс его создания и настройки.

Создание источника данных завершение

Зададим имя источника данных и укажем имя экземпляра MS SQL, к которому требуется выполнить подключение.

Задание имён источника и сервера

Далее введём имя пользователя и пароль для подключения.

Аутентификация

После этого укажем базу данных, в которую планируется перенести таблицу или запрос. Перенос с помощью ODBC можно выполнить только в уже существующую базу данных. Поэтому, если данные требуется перенести в новую базу данных, её необходимо предварительно создать.

Укаазание базы данных

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

Завершение создания источника

После нажатия кнопки «Готово» будет показано окно с итоговой информацией о создаваемом источнике данных.

Проверка источника данных

Для того чтобы источник данных был окончательно создан, достаточно нажать кнопку «Ok». Но, лучше предварительно проверить его работоспособность, нажав на кнопку «Проверить источник данных».

Если всё сделано правильно, будет показано сообщение об успешной проверке.

Успешная проверка дсточника данных

Теперь, когда есть источник данных, можно приступать непосредственно к процессу переноса.В качестве примера экспортируем из базы данных единственный запрос «Contacts Запрос».

Для этого выделим его мышью и нажмём на кнопку «Дополнительно» в области «Экспорт» вкладки «Внешние данные». В раскрывшемся меню выберем «База данных ODBC».

Запуск экспорта

Далее в диалоговом окне нужно ввести, как будет назваться экспортируемый объект (в данном случае запрос) после того, как он будет экспортирован.

Имя при экспорте

В данном случае оставлено исходное значение.

После нажатия кнопки «Ok» необходимо выбрать созданный источник данных.

Задание источника данных

Затем ввести имя пользователя и пароль для подключения к серверу.

Вход на сервер

После нажатия кнопки «Ok» экспорт будет выполнен.

Экспорт запроса

Однако, как уже говорилось выше, результат экспорта в случае запроса не корректный.

Вместо представления «Contacts Запрос» в базе данных MS SQL была создана одноимённая таблица.

Результа экспорта на сервере

Кроме того, даже если экспортировать только таблицы, после экспорта необходимо выполнить множество дополнительных действий (повторное создание связей и т.д.). Поэтому, описанный способ переноса баз данных из Access в MS SQL уже практически не применяется.

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

 

Монеты Советского Союза 1924 - 1991 гг. http://tatcoin.ru/ детальная информация о монетах России.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *