Share via


Exportar un inventario de Access (AccessToSQL)

Si tiene varias bases de datos de Access y no está seguro de cuáles migrar a SQL Server, puede exportar un inventario de todas las bases de datos de Access de un proyecto. A continuación, puede revisar y consultar los metadatos de inventario para determinar qué bases de datos y objetos de esas bases de datos se van a migrar. Este inventario le permite encontrar rápidamente respuestas a preguntas, como la siguiente lista:

  • ¿Cuáles son las bases de datos más grandes?
  • ¿Quién posee la mayoría de las bases de datos?
  • ¿Qué bases de datos contienen las mismas tablas?
  • ¿Qué bases de datos no se han modificado en los últimos seis meses?
  • ¿Qué bases de datos contienen información privada?

Al final de este artículo se proporcionan ejemplos de consultas que se usan para responder a estas preguntas.

Metadatos exportados

SSMA exporta metadatos de bases de datos, tablas, columnas, índices, claves externas, consultas, informes, formularios, macros y módulos de Access. Los metadatos de cada una de estas categorías de elementos se exportan a una tabla independiente. Para ver los esquemas de estas tablas, consulte Esquemas de inventario de Access.

Exportar datos de inventario

Para exportar un inventario de Access, primero debe abrir o crear un proyecto SSMA y, a continuación, agregar la base de datos de Access que desea analizar. Después de agregar bases de datos a un proyecto SSMA, se exportan los metadatos de esas bases de datos a una base de datos y un esquema de SQL Server especificados. Si es necesario, SSMA crea tablas para almacenar los metadatos. A continuación, SSMA agrega los metadatos de las bases de datos de Access a la base de datos de SQL Server.

Nota:

Una base de datos de Access se puede dividir en varios archivos: una base de datos back-end que contiene tablas y bases de datos front-end que contienen consultas, formularios, informes, macros, módulos y accesos directos. Si desea migrar una base de datos dividida a SQL Server, agregue la base de datos front-end a SSMA.

En las instrucciones siguientes se describe cómo crear un proyecto, agregar bases de datos al proyecto, conectarse a SQL Server y exportar datos de inventario.

Crear un proyecto

  1. Abra SSMA para Access.

  2. En el menú Archivo, seleccione Nuevo proyecto.

    Aparecerá el cuadro de diálogo Nuevo proyecto.

  3. En el cuadro de texto Nombre, escriba un nombre para el proyecto.

  4. En el cuadro Ubicación, escriba o seleccione una carpeta para el proyecto.

  5. En el cuadro combinado Migrar a, seleccione la versión de destino a la que desea migrar y, a continuación, seleccione Aceptar.

Para obtener más información sobre cómo crear un proyecto, consulte Creación y administración de proyectos.

Buscar y agregar bases de datos

  1. En el menú Archivo, seleccione Buscar bases de datos.

  2. En el Asistente para buscar bases de datos, escriba la unidad, la ruta de acceso del archivo o la ruta de acceso UNC que desea buscar. Como alternativa, seleccione Examinar para seleccionar la unidad o la carpeta de red.

  3. Seleccione Agregar para agregar la ubicación al cuadro de lista.

    Repita los dos pasos anteriores para agregar ubicaciones de búsqueda adicionales.

  4. Opcionalmente, agregue criterios de búsqueda para refinar la lista de bases de datos que se devuelven.

    Importante

    El cuadro de texto Todo o parte del nombre de archivo no admite caracteres comodín.

  5. Seleccione Examinar.

    Aparece la página para examinar. Muestra las bases de datos que se han encontrado y el progreso de la búsqueda. Para detener la búsqueda, haga clic en Detener.

  6. En la página Seleccionar archivos, seleccione cada base de datos que quiera agregar al proyecto.

    Puede usar los botones Seleccionar todo y Borrar todo en la parte superior de la lista para seleccionar o borrar todas las bases de datos. También puede mantener presionada la tecla CTRL para seleccionar varias filas o mantener presionada la tecla MAYÚS para seleccionar un intervalo de filas.

  7. Seleccione Siguiente.

  8. En la página de comprobación, seleccione Finalizar.

Para obtener más información sobre cómo agregar bases de datos a proyectos, consulte Agregar y quitar archivos de base de datos de Access.

Conectar a SQL Server

  1. En el menú Archivo, seleccione Conectar a SQL Server.

  2. En el cuadro de diálogo de conexión, escriba o seleccione el nombre de la instancia de SQL Server.

    • Si se conecta a la instancia predeterminada en el equipo local, puede escribir localhost o un punto (.).

    • Si se conecta a la instancia predeterminada en otro equipo, escriba el nombre del equipo.

    • Si se está conectando con una instancia con nombre, escriba el nombre del equipo, una barra inversa y, después, el nombre de la instancia. Por ejemplo: MyServer\MyInstance.

  3. En el cuadro Base de datos, escriba el nombre de la base de datos de destino para los metadatos exportados.

  4. Si la instancia de SQL Server está configurada para aceptar conexiones en el puerto no predeterminado, escriba el número de puerto que se usa para las conexiones de SQL Server en el cuadro Puerto del servidor. Para las instancias predeterminadas de SQL Server, el puerto predeterminado es 1433. En el caso de las instancias con nombre, SSMA intenta obtener el número de puerto del servicio SQL Server Browser.

  5. En la lista desplegable Autenticación, seleccione el tipo de autenticación que se va a usar para la conexión. Para usar la cuenta de Windows actual, seleccione Autenticación de Windows. Para usar un inicio de sesión de SQL Server, seleccione Autenticación de SQL Server y proporcione un nombre de usuario y una contraseña.

Para obtener más información sobre cómo conectarse a SQL Server, consulte Conectar a SQL Server (AccessToSQL).

Exportar la información del inventario

  1. En el Explorador de metadatos de Access, expanda Access-metabase.

  2. Seleccione la casilla situada junto a Bases de datos.

    Para omitir bases de datos individuales u objetos de base de datos, expanda la carpeta Bases de datos y desactive la casilla situada junto a la base de datos o al objeto de base de datos.

  3. Haga clic con el botón derecho en Bases de datos y seleccione Exportar esquema.

  4. En el cuadro de diálogo Seleccionar esquema para exportar, seleccione el esquema de destino para los metadatos exportados y, a continuación, seleccione Aceptar.

Cada vez que exporta metadatos, SSMA anexa los datos al inventario. Los datos existentes en el inventario no se actualizan ni eliminan.

Consultar los metadatos exportados

Después de exportar metadatos de las bases de datos de Access, puede consultar los metadatos. En las instrucciones siguientes se describe cómo usar la ventana Editor de consultas en SQL Server Management Studio para ejecutar consultas.

Metadatos de consulta

  1. En el menú Inicio, seleccione Todos los programas, Microsoft SQL Server 2005, Microsoft SQL Server 2008 o Microsoft SQL Server 2012 y, a continuación, seleccione SQL Server Management Studio.

  2. En el cuadro de diálogo Conectar con el servidor, compruebe la configuración predeterminada y seleccione Conectar.

  3. En la barra de herramientas Management Studio, seleccione Nueva consulta para abrir el Editor de consultas.

  4. En la ventana Editor de consultas, escriba la consulta. En la siguiente sección se muestran algunos ejemplos.

  5. Presione la tecla F5 para ejecutar la consulta.

Ejemplos de consultas

Antes de ejecutar cualquiera de las siguientes consultas, debe ejecutar una consulta USE database_name para asegurarse de que las consultas se ejecutan en la base de datos que contiene los metadatos exportados. Por ejemplo, si exportó metadatos a una base de datos denominada MyAccessMetadata, agregaría la siguiente instrucción al principio del código Transact-SQL:

USE MyAccessMetadata;
GO

En los siguientes ejemplos se usa el esquema dbo. Si exportó los metadatos a otro esquema, asegúrese de cambiar el esquema al ejecutar estas consultas.

¿Qué tablas y columnas hay en estas bases de datos?

La consulta siguiente combina las tablas que contienen metadatos de columna, tabla y base de datos y, a continuación, devuelve los nombres de todas las bases de datos, tablas y columnas, ordenados por nombre de columna:

SELECT DatabaseName,
    TableName,
    ColumnName
FROM dbo.SSMA_Access_InventoryColumns C
INNER JOIN dbo.SSMA_Access_InventoryTables T
    ON C.TableId = T.TableId
INNER JOIN dbo.SSMA_Access_InventoryDatabases D
    ON T.DatabaseId = D.DatabaseId
ORDER BY ColumnName;

¿Cuáles son las bases de datos más grandes?

La consulta siguiente devuelve el nombre de la base de datos, el tamaño de archivo y el número de tablas de cada base de datos de Access, ordenadas por tamaño de archivo:

SELECT DatabaseName,
    FileSize,
    TablesCount
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileSize DESC;

¿Quién es el propietario de la mayoría de las bases de datos?

La consulta siguiente devuelve el nombre de la base de datos y el propietario de cada base de datos de Access, ordenadas por propietario.

SELECT DatabaseName, FileOwner
FROM dbo.SSMA_Access_InventoryDatabases
ORDER BY FileOwner;

¿Qué bases de datos contienen las mismas tablas?

La consulta siguiente usa una subconsulta para buscar todos los nombres de tabla que aparecen más de una vez en la lista de tablas y, a continuación, usa esta lista de tablas para obtener el nombre de la base de datos. Los resultados se devuelven como el nombre de la base de datos y, a continuación, el nombre de la tabla y se ordenan por nombre de tabla.

SELECT DatabaseName,
    TableName
FROM dbo.SSMA_Access_InventoryTables T
INNER JOIN dbo.SSMA_Access_InventoryDatabases 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;

¿Qué bases de datos no se modificaron en los últimos seis meses?

La consulta siguiente obtiene la fecha actual y el valor de mes hace seis meses y, a continuación, devuelve una lista de bases de datos con una fecha modificada de más de seis meses atrás.

SELECT DatabaseName,
    DateModified
FROM dbo.SSMA_Access_InventoryDatabases
WHERE DATEDIFF(MONTH, DateModified, GETDATE()) > 6
ORDER BY DateModified;

¿Qué bases de datos contienen información privada?

Las bases de datos de Access pueden contener información confidencial o personal. Es posible que quiera mover estas bases de datos a SQL Server para aprovechar sus características de seguridad. Si sabe que las columnas que contienen datos confidenciales tienen un nombre específico o contienen caracteres específicos, puede usar una consulta para buscar todas las columnas que contienen esa información. Por ejemplo, puede encontrar todas las columnas que incluyen la cadena "salario". A continuación, la consulta devuelve el nombre de la base de datos, el nombre de la tabla y el nombre de columna.

SELECT DatabaseName,
    TableName,
    ColumnName
FROM dbo.SSMA_Access_InventoryColumns C
INNER JOIN dbo.SSMA_Access_InventoryTables T
    ON C.TableId = T.TableId
INNER JOIN dbo.SSMA_Access_InventoryDatabases D
    ON T.DatabaseId = D.DatabaseId
WHERE ColumnName LIKE '%salary%';

Si no conoce el nombre de columna, puede escribir una consulta para devolver todas las columnas. Para ello, quite la cláusula WHERE de la consulta anterior.

Consulte también