Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Si tiene varias bases de datos de Access y no está seguro de cuáles migrar a SQL Server, exporte un inventario de todas las bases de datos de Access de un proyecto. 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 ayuda a 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 modificaron 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 responden a estas preguntas.
Metadatos exportados
SQL Server Migration Assistant (SSMA) exporta metadatos sobre bases de datos, tablas, columnas, índices, claves externas, consultas, informes, formularios, macros y módulos. SSMA exporta metadatos sobre cada una de estas categorías de elementos a una tabla independiente. Para ver los esquemas de estas tablas, consulte Esquemas de inventario de Access.
Exportación de datos de inventario
Para exportar un inventario de Access, abra primero o cree un proyecto SSMA. A continuación, agregue la base de datos de Access que desea analizar. Después de agregar bases de datos a un proyecto SSMA, exporta metadatos sobre 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 sobre 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 de 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.
Creación de un proyecto
Abra SSMA para Access.
En el menú Archivo, seleccione Nuevo proyecto.
Aparece el cuadro de diálogo Nuevo proyecto .
En el cuadro Nombre , escriba un nombre para el proyecto.
En el cuadro Ubicación , escriba o seleccione una carpeta para el proyecto.
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 la creación de proyectos, consulte Creación y administración de proyectos.
Búsqueda y adición de bases de datos
En el menú Archivo , seleccione Buscar bases de datos.
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.
Seleccione Agregar para agregar la ubicación al cuadro de lista.
Repita los dos pasos anteriores para agregar más ubicaciones de búsqueda.
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.
Seleccione Examinar.
Aparece la página Examinar . En esta página se muestran las bases de datos que encontró la herramienta y el progreso de la búsqueda. Para detener la búsqueda, seleccione Detener.
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.
Seleccione Siguiente.
En la página Comprobar , seleccione Finalizar.
Para obtener más información sobre cómo agregar bases de datos a proyectos, vea Agregar y quitar archivos de base de datos de Access.
Conectarse a SQL Server
En el menú Archivo , seleccione Conectar a SQL Server.
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, escriba
localhosto un punto (.).Si se conecta a la instancia predeterminada en otro equipo, escriba el nombre del equipo.
Si se conecta a una instancia con nombre, escriba el nombre del equipo, una barra diagonal inversa y el nombre de la instancia. Por ejemplo:
MyServer\MyInstance.
En el cuadro Base de datos , escriba el nombre de la base de datos de destino para los metadatos exportados.
Si la instancia de SQL Server está configurada para aceptar conexiones en un 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 la instancia predeterminada de SQL Server, el número de 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.
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 Conexión a SQL Server.
Exportar información de inventario
En el Explorador de metadatos de Access, expanda Access-metabase.
Active la casilla situada junto a Bases de datos.
Para omitir bases de datos individuales o 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.
Haga clic con el botón derecho en Bases de datos y seleccione Exportar esquema.
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.
Consulta de los metadatos exportados
Después de exportar metadatos sobre las bases de datos de Access, puede consultar los metadatos. En las instrucciones siguientes se describe cómo usar la ventana Del Editor de consultas en SQL Server Management Studio para ejecutar consultas.
Metadatos de consulta
Vaya a SQL Server Management Studio en el menú Inicio .
En el cuadro de diálogo Conectar al servidor , compruebe la configuración y, a continuación, seleccione Conectar.
En la barra de herramientas de Management Studio, seleccione Nueva consulta para abrir el Editor de consultas.
En la ventana Editor de consultas, escriba una consulta. Algunos ejemplos se muestran en la sección siguiente.
Presione la tecla F5 para ejecutar la consulta.
Ejemplos de consultas
Antes de ejecutar cualquiera de las siguientes consultas, ejecute una USE database_name consulta 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 de Transact-SQL:
USE MyAccessMetadata;
GO
En todos los ejemplos siguientes se utiliza 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 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;
¿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 posee 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. 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 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;
¿Qué bases de datos no se modificaron en los últimos seis meses?
La consulta siguiente obtiene la fecha actual, obtiene 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, use una consulta para buscar todas las columnas que contienen esa información. Por ejemplo, puede encontrar todas las columnas que incluyen la cadena salary. 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 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%';
Si no conoce el nombre de columna, escriba una consulta para devolver todas las columnas quitando la WHERE cláusula de esta consulta.