Поделиться через


Несовместимые функции доступа (AccessToSQL)

Не все функции базы данных Access совместимы с SQL Server. Например, SQL Server и Access имеют разные наборы зарезервированных ключевое слово. Такие проблемы могут предотвратить успешную миграцию в SQL Server. Используйте следующую таблицу, чтобы узнать о возможных проблемах миграции и о том, что можно сделать с ними.

Параметры или функции базы данных, которые могут повлиять на миграцию

Доступ к параметру или компоненту базы данных Проблема миграции
В таблицах доступа нет уникальных индексов. Если таблица, которая не имеет уникального индекса, переносится в SQL Server, невозможно изменить таблицу после миграции. Это может привести к проблемам совместимости приложений.

При преобразовании объектов базы данных Access окно вывода выводит список таблиц Access, которые не имеют уникальных индексов.

При преобразовании можно настроить Access для добавления первичного ключа в таблицу SQL Server. Дополнительные сведения см. в разделе "Проект Параметры (преобразование)".
Таблицы Access содержат столбцы реплика tion. Если таблица Access, содержащая системные столбцы реплика, переносится в SQL Server, функция jet реплика tion будет нарушена после миграции.

После миграции рассмотрите возможность использования sql Server реплика tion для поддержания синхронизированных копий баз данных.
Доступ к таблицам с уникальными индексами содержит несколько значений NULL. До версии 8.13 таблицы Access с уникальными индексами с несколькими значениями NULL не могут быть переданы в SQL Server, так как в SQL Server уникальные индексы запрещают несколько значений NULL. Миграция завершится ошибкой для этих таблиц.

SSMA помечает эту проблему в отчетах об оценке. Сведения о создании отчета об оценке см. в разделе "Оценка объектов базы данных Access для преобразования".

Если эта проблема существует, необходимо убедиться, что первичный ключ не имеет повторяющихся значений NULL. Кроме того, необходимо удалить первичный ключ или уникальные индексы, содержащие несколько значений NULL.
Таблицы Access содержат значения даты, которые находятся вне диапазона SQL Server. Тип даты и времени SQL Server принимает даты в диапазоне от 1 января 1753 до 31 декабря 9999 года. Access принимает даты в диапазоне от 1 января 100 до 31 декабря 9999 года.

SSMA помечает эту проблему в отчетах об оценке. Сведения о создании отчета об оценке см. в разделе "Оценка объектов базы данных Access для преобразования".

Вы можете настроить, как SSMA разрешает даты, которые находятся вне диапазона SQL Server. Дополнительные сведения см. в разделе "Проект Параметры (миграция)".
Длина индекса в Access превышает 900 байт. Индексы SQL Server имеют ограничение в 900 байтов для общего размера ключевых столбцов индекса. Если в таблицах Access используются более крупные индексы, SSMA отобразит предупреждение.

При продолжении миграции данных миграция может завершиться ошибкой.
Имена объектов Access — это ключевое слово SQL Server или содержат специальные символы. Access и SQL Server имеют разные наборы зарезервированных ключевое слово и специальных символов. SQL Server принимает объекты, именованные с помощью ключевое слово SQL Server или содержащие специальные символы, если используются идентификаторы с скобками или кавычки, например select или [select].p. Дополнительные сведения см. в статье "Идентификаторы с разделителями (ядро СУБД)" в электронной документации по SQL Server.

ПРИМЕЧАНИЕ. Чтобы использовать кавычки для идентификаторов разделителей, параметр SET QUOTED_IDENTIFIER должен быть ВКЛЮЧЕН.

Например, CREATE TABLE [schema](c1 [FOR]) является допустимым оператором, даже если схема и 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 не имеют первичного ключа или уникального индекса. Access принимает связь между таблицами, в которых указанная таблица не имеет первичного ключа или уникального индекса. Однако это не поддерживается SQL Server.

При преобразовании объектов базы данных Access окно вывода выводит список таблиц, имеющих связи, но не первичный ключ или уникальный индекс. Таблицы можно изменить для добавления первичных ключей или уникальных индексов, а затем удалить и повторно добавить базу данных Access. Кроме того, можно перенести данные, хотя связь между таблицами будет нарушена.
В таблицах access есть столбцы гиперссылки. SQL Server не поддерживает столбцы гиперссылки . Вместо этого столбцы обрабатываются как столбцы memo Access. По умолчанию эти столбцы будут преобразованы в столбцы nvarchar(max) в SQL Server. Сопоставление можно настроить. Дополнительные сведения см. в разделе "Сопоставление источников и целевых типов данных".
Выражения правил по умолчанию или проверке содержат функции Access, которые нельзя преобразовать в SQL Server или SQL Azure. Выражения по умолчанию или правила проверки доступа могут включать системные функции Access или определяемые пользователем функции, которые не сопоставлены с SQL Server или SQL Azure. Использование функций, которые не сопоставляются с SQL Server или SQL Azure, не позволяют загружать выражения по умолчанию или правила проверки в SQL Server или SQL Azure.

См. также

Подготовка баз данных Access для миграции
Перенос баз данных access на SQL Server