Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Не все функции базы данных Access работают с SQL Server. Например, SQL Server и Access используют разные наборы зарезервированных ключевых слов. Эти различия могут вызвать проблемы при миграции с помощью помощника по миграции SQL Server (SSMA). В следующем разделе описаны возможные проблемы миграции и способы их устранения.
Параметры или функции базы данных, которые могут повлиять на миграцию
Ознакомьтесь со следующими параметрами или функциями доступа, которые могут повлиять на миграцию на SQL Server или SQL Azure.
- Таблицы не имеют уникальных индексов
- Таблицы имеют столбцы репликации
- Таблицы с уникальными индексами содержат несколько значений NULL
- Таблицы содержат значения дат, которые находятся вне диапазона SQL Server
- Длина индекса превышает 900 байт
- Имена объектов являются ключевыми словами SQL Server или содержат специальные символы
- Размеры полей отличаются в отношениях первичного ключа или внешнего ключа.
- Ссылки на таблицы не имеют первичного ключа или уникального индекса
- Таблицы имеют столбцы гиперссылки
- Невозможно преобразовать функции в SQL Server или SQL Azure
Таблицы не имеют уникальных индексов
Если вы переносите таблицу без уникального индекса в SQL Server, вы не сможете изменить таблицу после миграции. Это ограничение может привести к проблемам совместимости приложений.
При преобразовании объектов базы данных Access в окне вывода перечислены все таблицы Access, у которых нет уникальных индексов.
При преобразовании можно настроить Access для добавления первичного ключа в таблицу SQL Server. Дополнительные сведения см. в разделе "Параметры проекта" (преобразование).
Таблицы имеют столбцы репликации
Если вы переносите таблицу Access, содержащую столбцы системы репликации в SQL Server, функция репликации Jet перестает работать после миграции.
После миграции рассмотрите возможность использования репликации SQL Server для поддержания синхронизированных копий баз данных.
Таблицы с уникальными индексами содержат несколько значений NULL
До версии 8.13 таблицы Access с уникальными индексами с несколькими значениями NULL нельзя передать в SQL Server. В SQL Server уникальные индексы запрещают несколько значений NULL. Происходит сбой миграции для этих таблиц.
SSMA помечает эту проблему в отчетах об оценке. Сведения о создании отчета об оценке см. в разделе "Оценка объектов базы данных Access" для преобразования.
Если эта проблема существует, убедитесь, что первичный ключ не имеет повторяющихся значений NULL. Или удалите первичный ключ или уникальные индексы, содержащие несколько значений NULL.
Таблицы содержат значения дат, которые находятся вне диапазона SQL Server
Тип даты и времени SQL Server принимает даты только в диапазоне от 1 января 1753 г. до 31 декабря 9999 г. Access принимает даты в диапазоне от 1 января 100 г. до 31 декабря 9999 г.
SSMA помечает эту проблему в отчетах об оценке. Сведения о создании отчета об оценке см. в разделе "Оценка объектов базы данных Access" для преобразования.
Вы можете настроить, как SSMA обрабатывает даты, которые находятся за пределами диапазона SQL Server. Дополнительные сведения см. в разделе "Параметры проекта " (миграция)".
Длина индекса превышает 900 байт
Индексы SQL Server имеют ограничение в 900 байтов для общего размера ключевых столбцов индекса. Если в таблицах Access используются более крупные индексы, SSMA отображает предупреждение.
Если вы продолжите текущую миграцию данных, она может завершиться ошибкой.
Имена объектов являются ключевыми словами SQL Server или содержат специальные символы
Access и SQL Server имеют разные наборы зарезервированных ключевых слов и специальных символов. SQL Server принимает объекты, именованные с помощью ключевых слов SQL Server или содержащих специальные символы, если вы используете идентификаторы с скобками или кавычками, например select или [select].p. Дополнительные сведения см. в разделе "Идентификаторы базы данных".
Замечание
Чтобы использовать кавычки для разграничения идентификаторов, SET QUOTED_IDENTIFIER должно быть ON.
Например, CREATE TABLE [schema](c1 [FOR]) является допустимым оператором, даже если schema и FOR являются зарезервированными ключевыми словами. Также CREATE TABLE [xxx*yyy](c1 x&y) является допустимым оператором, даже если имя таблицы и столбца содержат специальные символы * и &.
Все запросы, ссылающиеся на эти объекты, также должны использовать имена с скобками или кавычками. Например, запрос SELECT * FROM schema завершается сбоем. Правильный запрос: SELECT * FROM [schema]
При преобразовании объектов базы данных Access в области вывода перечислены все таблицы Access, использующие ключевые слова или специальные символы. Таблицы можно изменить в Access, а затем удалить и снова добавить базу данных. Кроме того, можно изменить запросы, ссылающиеся на эти объекты, чтобы запросы использовали квадратные скобки или кавычки для обозначения идентификаторов. Если вы не изменяете запросы, приложения Access могут возвращать ошибки или другие проблемы.
Размеры полей отличаются в связях первичного ключа или внешнего ключа.
SQL Server не поддерживает функции Jet для связывания столбцов с различными типами данных или размерами с ограничениями внешнего ключа.
При преобразовании объектов базы данных Access окно вывода выводит список ограничений первичного или внешнего ключа, которые не преобразуются в SQL Server. Вы можете изменить типы данных и размеры столбцов Access, чтобы они соответствовали, а затем удалить и добавить базу данных Access еще раз. Кроме того, можно перенести данные, хотя эти ограничения не создаются в SQL Server.
Ссылки на таблицы не имеют первичного ключа или уникального индекса
Access принимает связи между таблицами, в которых указанная таблица не имеет первичного ключа или уникального индекса. Однако SQL Server не поддерживает этот тип связи.
При преобразовании объектов базы данных Access в окне вывода перечислены все таблицы, имеющие связи, но не первичный ключ или уникальный индекс. Таблицы можно изменить для добавления первичных ключей или уникальных индексов, а затем удалить и снова добавить базу данных Access. Кроме того, можно перенести данные, хотя связь между таблицами нарушена.
Таблицы имеют столбцы гиперссылки
SQL Server не поддерживает столбцы гиперссылки . Вместо этого столбцы обрабатываются как поля типа 'записка' в Access. По умолчанию эти столбцы преобразуются в столбцы nvarchar(max) в SQL Server. Сопоставление можно настроить. Дополнительные сведения см. в разделе "Источник карты" и "Целевые типы данных".
Невозможно преобразовать функции в SQL Server или SQL Azure
Выражения по умолчанию или правила проверки доступа могут включать системные функции Access или определяемые пользователем функции, которые не сопоставлены с SQL Server или SQL Azure. Если вы используете функции, которые не сопоставлены с SQL Server или SQL Azure, вы не можете загрузить выражения по умолчанию или правила проверки в SQL Server или Azure SQL.