Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если у вас несколько баз данных Access, и вы не уверены, какие из них необходимо перенести в SQL Server, экспортируйте инвентаризацию всех баз данных Access в проекте. Вы можете просматривать и запрашивать метаданные инвентаризации, чтобы определить, какие базы данных и объекты в этих базах данных необходимо перенести. Эта инвентаризация помогает быстро найти ответы на такие вопросы, как следующий список:
- Что такое самые большие базы данных?
- Кто владеет большинством баз данных?
- Какие базы данных содержат одни и те же таблицы?
- Какие базы данных не были изменены за последние шесть месяцев?
- Какие базы данных содержат частную информацию?
Примеры запросов, которые отвечают на эти вопросы, приведены в конце этой статьи.
Экспортированные метаданные
Помощник по миграции SQL Server (SSMA) экспортирует метаданные о базах данных Access, таблицах, столбцах, индексах, внешних ключах, запросах, отчетах, формах, макросах и модулях. SSMA экспортирует метаданные каждой из этих категорий элементов в отдельную таблицу. Схемы этих таблиц см. в разделе " Схемы инвентаризации Access".
Экспорт данных инвентаризации
Чтобы экспортировать инвентаризацию Access, сначала откройте или создайте проект SSMA. Затем добавьте базу данных Access, которую необходимо проанализировать. После добавления баз данных в проект SSMA вы экспортируете метаданные об этих базах данных в указанную базу данных и схему SQL Server. При необходимости SSMA создает таблицы для хранения метаданных. Затем SSMA добавляет метаданные о базах данных Access в базу данных SQL Server.
Замечание
База данных Access может быть разделена на несколько файлов: серверная база данных, содержащая таблицы и интерфейсные базы данных, содержащие запросы, формы, отчеты, макросы, модули и сочетания клавиш. Если вы хотите перенести разделённую базу данных в SQL Server, добавьте переднюю часть базы данных в SSMA.
Ниже приведены инструкции по созданию проекта, добавлению баз данных в проект, подключению к SQL Server и экспорту данных инвентаризации.
Создание проекта
Откройте SSMA для Access.
В меню Файл выберите пункт Создать проект.
Откроется диалоговое окно Создание проекта .
В поле "Имя" введите имя проекта.
В поле "Расположение " введите или выберите папку для проекта.
В поле со списком "Миграция в" выберите целевую версию, в которую хотите мигрировать, и нажмите ОК.
Дополнительные сведения о создании проектов см. в статье "Создание проектов и управление ими".
Поиск и добавление баз данных
В меню "Файл" выберите "Найти базы данных".
В мастере поиска баз данных введите диск, путь к файлу или UNC-путь, который нужно обыскать. Кроме того, нажмите кнопку "Обзор ", чтобы выбрать диск или сетевую папку.
Нажмите кнопку "Добавить ", чтобы добавить расположение в поле списка.
Повторите предыдущие два шага, чтобы добавить дополнительные расположения поиска.
При необходимости добавьте условия поиска для уточнения списка возвращаемых баз данных.
Это важно
Текстовое поле «Все или часть имени файла» не поддерживает подстановочные знаки.
Выберите "Сканировать".
Откроется страница сканирования . На этой странице показаны базы данных, найденные средством и ход выполнения поиска. Чтобы остановить поиск, нажмите кнопку "Остановить".
На странице выбора файлов выберите каждую базу данных, которую вы хотите добавить в проект.
Вы можете использовать кнопки "Выбрать все " и "Очистить все " в верхней части списка, чтобы выбрать или очистить все базы данных. Вы также можете удерживать клавишу CTRL, чтобы выбрать несколько строк, или удерживать клавишу SHIFT, чтобы выбрать диапазон строк.
Нажмите кнопку Далее.
На странице "Проверка " нажмите кнопку "Готово".
Дополнительные сведения о добавлении баз данных в проекты см. в разделе "Добавление и удаление файлов базы данных Access".
Подключение к SQL Server
В меню "Файл" выберите "Подключиться к SQL Server".
В диалоговом окне подключения введите или выберите имя экземпляра SQL Server.
При подключении к экземпляру по умолчанию на локальном компьютере введите
localhostили точку (.).При подключении к экземпляру по умолчанию на другом компьютере введите имя компьютера.
Если вы подключаетесь к именованному экземпляру, введите имя компьютера, обратную косую черту и имя экземпляра. Например:
MyServer\MyInstance.
В поле "База данных " введите имя целевой базы данных для экспортированных метаданных.
Если экземпляр SQL Server настроен на прием подключений к нестандартному порту, введите номер порта, используемый для подключений SQL Server, в поле Серверный порт. Для экземпляра SQL Server по умолчанию номер порта по умолчанию — 1433. Для именованных экземпляров SSMA пытается получить номер порта из службы браузера SQL Server.
В раскрывающемся списке проверки подлинности выберите тип проверки подлинности , используемый для подключения. Чтобы использовать текущую учетную запись Windows, выберите проверку подлинности Windows. Чтобы использовать имя входа в SQL Server, выберите аутентификацию SQL Server, затем укажите имя пользователя и пароль.
Дополнительные сведения о подключении к SQL Server см. в разделе "Подключение к SQL Server".
Экспорт сведений инвентаризации
В обозревателе метаданных Access разверните файл Access-metabase.
Установите флажок рядом с базами данных.
Чтобы опустить отдельные базы данных или объекты базы данных, разверните папку "Базы данных ", а затем снимите флажок рядом с объектом базы данных или базой данных.
Щелкните правой кнопкой мыши База данных и выберите Экспорт схемы.
В диалоговом окне "Выбор схемы экспорта " выберите целевую схему экспортированных метаданных и нажмите кнопку "ОК".
При каждом экспорте метаданных SSMA добавляет данные в инвентаризацию. Существующие данные в инвентаризации не обновляются или не удаляются.
Запрос экспортированных метаданных
После экспорта метаданных о базах данных Access можно запросить метаданные. В следующих инструкциях описывается использование окна редактора запросов в SQL Server Management Studio для выполнения запросов.
Метаданные запроса
Перейдите в SQL Server Management Studio из меню "Пуск ".
В диалоговом окне "Подключение к серверу" проверьте параметры и нажмите кнопку "Подключиться".
На панели инструментов Management Studio выберите "Создать запрос" , чтобы открыть редактор запросов.
В окне редактора запросов введите запрос. Некоторые примеры показаны в следующем разделе.
Нажмите клавишу F5 , чтобы запустить запрос.
Примеры запросов
Перед выполнением любого из следующих запросов выполните USE database_name запрос, чтобы убедиться, что запросы выполняются в базе данных, содержащей экспортированные метаданные. Например, если вы экспортировали метаданные в базу данных с именем MyAccessMetadata, вы добавите следующую инструкцию в начале кода Transact-SQL:
USE MyAccessMetadata;
GO
В следующих примерах используется dbo схема. Если вы экспортировали метаданные в другую схему, обязательно измените схему при выполнении этих запросов.
Какие таблицы и столбцы находятся в этих базах данных?
Следующий запрос объединяет таблицы, содержащие метаданные столбца, таблицы и базы данных, а затем возвращает имена всех баз данных, таблиц и столбцов, отсортированных по имени столбца:
SELECT DatabaseName,
TableName,
ColumnName
FROM dbo.SSMA_Access_InventoryColumns AS C
INNER JOIN dbo.SSMA_Access_InventoryTables AS T
ON C.TableId = T.TableId
INNER JOIN dbo.SSMA_Access_InventoryDatabases AS D
ON T.DatabaseId = D.DatabaseId
ORDER BY ColumnName;
Что такое самые большие базы данных?
Следующий запрос возвращает имя базы данных, размер файла и количество таблиц в каждой базе данных Access, отсортированный по размеру файла:
SELECT DatabaseName,
FileSize,
TablesCount
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileSize DESC;
Кто владеет большинством баз данных?
Следующий запрос возвращает имя базы данных и владельца каждой базы данных Access, отсортированный по владельцу.
SELECT DatabaseName,
FileOwner
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileOwner;
Какие базы данных содержат одни и те же таблицы?
Следующий запрос использует вложенный запрос для поиска всех имен таблиц, которые отображаются несколько раз в списке таблиц. Затем он использует этот список таблиц для получения имени базы данных. Результаты возвращаются в качестве имени базы данных, а затем имени таблицы и отсортированы по имени таблицы.
SELECT DatabaseName,
TableName
FROM dbo.SSMA_Access_InventoryTables AS T
INNER JOIN dbo.SSMA_Access_InventoryDatabases AS D
ON D.DatabaseId = T.DatabaseId
WHERE TableName IN (SELECT TableName
FROM dbo.SSMA_Access_InventoryTables
GROUP BY TableName
HAVING COUNT(*) > 1)
ORDER BY TableName;
Какие базы данных не были изменены за последние шесть месяцев?
Следующий запрос получает текущую дату, получает значение месяца за шесть месяцев назад, а затем возвращает список баз данных с измененной датой более шести месяцев назад.
SELECT DatabaseName,
DateModified
FROM dbo.SSMA_Access_InventoryDatabases
WHERE DATEDIFF(MONTH, DateModified, GETDATE()) > 6
ORDER BY DateModified;
Какие базы данных содержат частную информацию?
Базы данных Access могут содержать конфиденциальную или личную информацию. Эти базы данных могут потребоваться переместить в SQL Server, чтобы воспользоваться его функциями безопасности. Если вы знаете, что столбцы, содержащие конфиденциальные данные, имеют определенное имя или содержат определенные символы, используйте запрос для поиска всех столбцов, содержащих эти сведения. Например, можно найти все столбцы, содержащие строку salary. Затем запрос возвращает имя базы данных, имя таблицы и имя столбца.
SELECT DatabaseName,
TableName,
ColumnName
FROM dbo.SSMA_Access_InventoryColumns AS C
INNER JOIN dbo.SSMA_Access_InventoryTables AS T
ON C.TableId = T.TableId
INNER JOIN dbo.SSMA_Access_InventoryDatabases AS D
ON T.DatabaseId = D.DatabaseId
WHERE ColumnName LIKE '%salary%';
Если имя столбца не известно, напишите запрос, чтобы вернуть все столбцы, удалив WHERE предложение из этого запроса.