Share via


Características de Access incompatibles (AccessToSQL)

No todas las características de la base de datos de Access son compatibles con SQL Server. Por ejemplo, SQL Server y Access tienen diferentes conjuntos de palabras clave reservadas. Los problemas como estos pueden impedir una migración correcta a SQL Server. Use la tabla siguiente para obtener información sobre los posibles problemas de migración y lo que puede hacer sobre ellos.

Configuración o características de la base de datos que podrían afectar a la migración

Configuración o características de la base de datos de Access Problema de migración
Las tablas de Access no tienen un índice único. Si una tabla que no tiene un índice único se migra a SQL Server, no puede modificar la tabla después de la migración. Esto puede provocar problemas de compatibilidad de aplicaciones.

Al convertir objetos de base de datos de Access, la ventana de resultados enumerará las tablas de Access que no tengan índices únicos.

Puede configurar Access para agregar una clave principal en la tabla de SQL Server durante la conversión. Para obtener más información, consulte Configuración del proyecto (conversión).
Las tablas de Access tienen columnas de replicación. Si se migra una tabla de Access que incluye columnas del sistema de replicación a SQL Server, la funcionalidad de replicación Jet se romperá después de la migración.

Después de la migración, considere la posibilidad de usar la replicación de SQL Server para mantener copias sincronizadas de las bases de datos.
Las tablas de Access que tienen índices únicos contienen varios valores NULL. Antes de la versión 8.13, las tablas de Access que tienen índices únicos con varios valores NULL no se pueden transferir a SQL Server, ya que en SQL Server, los índices únicos no admiten varios valores NULL. Se producirá un error en la migración de estas tablas.

SSMA marcará este problema en los informes de evaluación. Para crear un informe de evaluación, consulte Evaluación de objetos de base de datos de Access para la conversión.

Si este problema existe, debe asegurarse de que la clave principal no tiene valores NULL duplicados. O bien, debe quitar la clave principal o los índices únicos que contienen varios valores NULL.
Las tablas de Access contienen valores de fecha que están fuera del intervalo de SQL Server. El tipo de fecha y hora de SQL Server solo acepta fechas en el intervalo del 1 de enero de 1753 al 31 de diciembre de 9999. Access acepta fechas en el intervalo del 1 enero 100 al 31 dic 9999.

SSMA marcará este problema en los informes de evaluación. Para crear un informe de evaluación, consulte Evaluación de objetos de base de datos de Access para la conversión.

Puede configurar cómo SSMA resuelve las fechas que están fuera del intervalo de SQL Server. Para obtener más información, consulte Configuración del proyecto (migración).
Las longitudes de índice en Access superan los 900 bytes. Los índices de SQL Server tienen un límite de 900 bytes para el tamaño total de las columnas de clave de índice. Si las tablas de Access usan índices más grandes, SSMA mostrará una advertencia.

Si continúa con la migración de datos, es posible que se produzca un error en la migración.
Los nombres de objeto de Access son palabras clave de SQL Server o contienen caracteres especiales. Access y SQL Server tienen diferentes conjuntos de palabras clave reservadas y caracteres especiales. SQL Server aceptará objetos denominados mediante palabras clave de SQL Server o que contengan caracteres especiales si usa identificadores entre corchetes o entre comillas, como "select" o [select].p. Para obtener más información, consulte “Identificadores delimitados (motor de bases de datos) en Libros en pantalla de SQL Server.

NOTA: Para usar comillas para delimitar identificadores, SET QUOTED_IDENTIFIER debe ser ON.

Por ejemplo, CREATE TABLE [schema](c1 [FOR]) es una instrucción válida, aunque schema y FOR sean palabras clave reservadas. Además, CREATE TABLE [xxx*yyy](c1 x&y) es una instrucción válida, aunque la tabla y el nombre de columna contengan los caracteres especiales * y &.

Todas las consultas que hacen referencia a esos objetos también deben usar los nombres con corchetes o comillas. Por ejemplo, se producirá un error en la consulta SELECT * FROM schema. La consulta correcta es: SELECT * FROM [schema].

Al convertir objetos de base de datos de Access, el panel de resultados mostrará las tablas de Access que usen palabras clave o caracteres especiales. Puede modificar las tablas en Access y, a continuación, quitar y agregar la base de datos de nuevo; o bien, puede modificar las consultas que hacen referencia a esos objetos para que las consultas usen corchetes o comillas a fin de delimitar identificadores. Si no modifica las consultas, las aplicaciones de Access pueden devolver errores o tener otros problemas.
Los tamaños de campo difieren en las relaciones de clave principal o clave externa. SQL Server no admite la funcionalidad Jet de vincular columnas que tienen diferentes tipos de datos o tamaños con restricciones de clave externa.

Al convertir objetos de base de datos de Access, la ventana de resultados enumerará las restricciones de clave principal o clave externa que no se convertirán en SQL Server. Puede modificar los tipos de datos y los tamaños en las columnas de Access para que coincidan y, a continuación, quitar y volver a agregar la base de datos de Access. O bien, puede migrar datos aunque estas restricciones no se crearán en SQL Server.
Las tablas a las que se hace referencia en las relaciones de Access no tienen una clave principal ni un índice único. Access acepta la relación entre las tablas en las que la tabla a la que se hace referencia no tiene una clave principal o un índice único. Sin embargo, SQL Server no admite esta opción.

Al convertir objetos de base de datos de Access, la ventana de resultados enumerará las tablas que tengan relaciones pero que no tengan clave principal o índice único. Puede modificar las tablas para agregar claves principales o índices únicos y, a continuación, quitar y volver a agregar la base de datos de Access. O bien, puede migrar datos aunque se interrumpa la relación entre las tablas.
Las tablas de Access tienen columnas de hipervínculo. SQL Server no admite columnas de hipervínculo. En su lugar, las columnas se tratan como columnas memo de Access. De forma predeterminada, estas columnas se convertirán en columnas nvarchar(max) en SQL Server. Puede personalizar la asignación. Para obtener más información, consulte Asignación de tipos de datos de origen y de destino.
Las expresiones de regla de validación o predeterminadas contienen funciones de Access que no se pueden convertir en SQL Server o SQL Azure. Las expresiones predeterminadas o las reglas de validación de Access pueden incluir funciones del sistema de Access o funciones definidas por el usuario que no se asignan a SQL Server o SQL Azure. El uso de funciones que no se asignan a SQL Server o SQL Azure le impedirá cargar las expresiones predeterminadas o las reglas de validación en SQL Server o SQL Azure.

Consulte también

Preparación de bases de datos de Access para la migración
Migrar bases de datos de Access a SQL Server