Access экспорт в sql

Со временем в ходе может потребоваться перенос файл-серверной базы данных 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. Создание новой базы данных (по умолчанию).

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

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

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

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

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

В раскрывающемся списке «Источник данных» необходимо выбрать «.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.

Перенос базы данных со стороны средствами 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 его средствами.

Для того чтобы перенести базу данных из Access 2016 в MS SQL Server необходимо выполнить ряд действий.

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

Открываем вашу базу Access. Выделяем нужную нам таблицу для переноса. (Если необходимо переносить несколько таблиц из Access, то потребуется несколько раз выполнить инструкцию). Переходим на вкладку Внешние данные, в разделе экспорт ищем Дополнительно.

Щелкаем по кнопке Дополнительно, откроется меню выбора , выбираем База данных ODBC

Откроется окно. Таблица, которую переносим из Access, называется test. В поле ввода необходимо написать название таблицы, которая будет создана на SQL Server

Откроется окно , Переходим на вкладку как на скрине

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

Жмем далее и выбираем нужный нам драйвер

Жмем далее и Готово.

Откроется настройка подключения к серверу. Заполняем поля Имя – оно будет отображаться в списке выбора (удобное для вас) и жмем на галочку для выбора сервера. Будет долго думать, потом в выпадающем списке выбираем название экземпляра. Скорее всего у вас будет один.

Жмем Далее. Выбираем проверку подлинности, такую же как на сервере. Хотя может быть и так и так.

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

Готово, делаем проверку источника данных. ТЕСТ УСПЕШЕН! Жмем везде ОК

Дальше, выбираем наш источник данных Жмем ОК

Открывается окно, вводим пароль и жмем Параметры

На этом шаге мы выбираем базу данных, в которую необходимо перенести данные (создастся новая таблица , которую мы указывали в начале — Tablenew) Жмем ОК Вылезет окно, шаги можно сохранить , а лучше не стоит.

На сервере создалась наша таблица со всеми данными.

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

У меня просто есть прекрасная база данных Access, поэтому первое, что я хочу сделать, это переместить ее в обычную систему управления базами данных (sqlexpress), но единственным решением Я нашел звуки, как сумасшествие.

нет "экспорт базы данных .в SQL" где-то? У меня около 50 таблиц, и этот экспорт может выполняться более одного раза, поэтому было бы здорово, если бы мне не пришлось экспортировать все таблицы вручную. Создание .sql файл (с таблицами создание и вставки) также было бы здорово, так как это позволило бы мне держать это под контролем версий.

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

3 ответов

есть ли причина, по которой Вы не хотите использовать Management Studio и указать Microsoft Access в качестве источника данных для операции импорта данных? (База данных — >задачи — >импорт, Microsoft Access в качестве источника данных, mdb-файл в качестве параметра). Или есть причина, по которой это должно быть сделано из Microsoft Access?

есть инструмент из группы SQL Server -помощник по миграции SQL Server для доступа (SSMA Access) были комментарии о том, что это лучший инструмент, чем Мастер увеличения, включенный в Access.

быстрый и грязный способ увеличить таблицы Jet/ACE до любого ODBC-доступного компонента database engine:

создайте DSN ODBC для вашей базы данных.

в Access выберите таблицу и выберите Экспорт в меню Файл. Выберите ODBC в качестве типа, а затем выберите DSN.

Это экспортирует таблицу и ее данные с типами данных, которые ваш драйвер ODBC указывает, наиболее совместимы с типами данных Jet/ACE. Это не обязательно угадайте правильно, и именно поэтому вы, вероятно, не сделали бы этого с SQL Server (для которого есть инструменты, которые лучше переводят). Но с базами данных, отличными от SQL Server, это может быть отличным началом.


[an error occurred while processing the directive]
Карта сайта