Convertir bases de datos de MySQL (MySQLToSQL)
Después de conectarse a MySQL, conectarse a SQL Server o Azure SQL y establecer opciones de asignación de datos y proyectos, puede convertir objetos de base de datos MySQL en objetos de SQL Server o Azure SQL Database mediante SQL Server Migration Assistant (SSMA) para MySQL.
El proceso de conversión
La conversión de objetos de bases de datos toma las definiciones de los objetos de MySQL, realiza la conversión en objetos de SQL Server O Azure SQL similares y, a continuación, carga esta información en los metadatos de SSMA. No carga la información en la instancia de SQL Server. A continuación, puede ver los objetos y sus propiedades mediante el Explorador de metadatos de SQL Server O SQL Azure.
Durante la conversión, SSMA imprime los mensajes de salida en el panel de salida y los mensajes de error en el panel Lista de errores. Use la información de salida y de errores para determinar si tiene que modificar las bases de datos de MySQL o el proceso de conversión para obtener los resultados de conversión deseados.
Establecer opciones de conversión
Antes de convertir objetos, revise las opciones de conversión del proyecto en el cuadro de diálogo Configuración del proyecto. Con este cuadro de diálogo, puede establecer cómo SSMA convierte tablas e índices. Para obtener más información, consulte Configuración del proyecto (conversión).
Resultados de la conversión
En la tabla siguiente se muestran los objetos de MySQL convertidos y los objetos de SQL Server resultantes:
Objetos MySQL | Objetos de SQL Server resultantes |
---|---|
Tablas con objetos dependientes como índices | SSMA crea tablas con objetos dependientes. La tabla se convierte con todos los índices y restricciones. Los índices se convierten en objetos de SQL Server independientes. La asignación de tipos de datos espaciales solo se puede realizar en el nivel de nodo de tabla. Consulte Configuración de conversión para obtener más información sobre la configuración de conversión de tablas |
Funciones | Si la función se puede convertir directamente a Transact-SQL, SSMA crea una función. En algunos casos, la función se debe convertir en un procedimiento almacenado. Esto se puede hacer mediante la conversión de funciones en Configuración del proyecto. En este caso, SSMA crea un procedimiento almacenado y una función que llama al procedimiento almacenado. Opciones disponibles: - Convertir según la configuración del proyecto - Convertir en función - Convertir al procedimiento almacenado Consulte Configuración de conversión para obtener más información sobre la configuración de conversión de funciones |
Procedimientos | Si el procedimiento se puede convertir directamente a Transact-SQL, SSMA crea un procedimiento almacenado. En algunos casos, se debe llamar a un procedimiento almacenado en una transacción autónoma. En este caso, SSMA crea dos procedimientos almacenados: uno que implementa el procedimiento y otro que se utiliza para llamar al procedimiento almacenado de implementación. |
Conversión de bases de datos | Las bases de datos como objetos MySQL no se convierten directamente mediante SSMA para MySQL. Las bases de datos MySQL se tratan más como un nombre de esquema y todos los parámetros físicos se pierden durante la conversión. SSMA para MySQL usa la asignación de bases de datos MySQL a esquemas de SQL Server para asignar objetos de la base de datos MySQL a un par de esquemas o base de datos de SQL Server adecuado. |
Conversión de desencadenador | SSMA crea desencadenadores basados en las siguientes reglas: - Los desencadenadores BEFORE se convierten en desencadenadores T-SQL INSTEAD OF - Los desencadenadores AFTER se convierten en desencadenadores T-SQL AFTER con o sin iteraciones por fila. |
Ver conversión | SSMA crea vistas con objetos dependientes |
Conversión de instrucciones | - Cada objeto de instrucción SQL puede contener una sola instrucción MySQL (como DDL, DML y otros tipos de instrucciones) o BEGIN ... Bloque END. - En una conversión multiestado:BEGIN ... Conversión de bloques END, la instrucción SQL también puede contener una instrucción BEGIN ... Bloque END como uno en procedimiento, función o definición de desencadenador. Esos bloques deben convertirse de la misma manera que se convierten para los únicos objetos de instrucción MySQL. |
Conversión de objetos de base de datos MySQL
Para convertir objetos de base de datos MySQL, seleccione primero los objetos que desea convertir y, a continuación, haga que SSMA haga la conversión. Para ver los mensajes de salida durante la conversión, en el menú Ver seleccione Salida.
Conversión de objetos MySQL en SQL Server o sintaxis de Azure SQL
En el Explorador de metadatos de MySQL, expanda el servidor MySQL y, a continuación, expanda Bases de datos.
Seleccione los objetos que se van a convertir:
Para convertir todos los esquemas, active la casilla situada junto a Bases de datos.
Para convertir u omitir una base de datos, active o desactive la casilla situada junto al nombre de la base de datos.
Para convertir u omitir una categoría de objetos, expanda un esquema y, a continuación, active o desactive la casilla situada junto a la categoría.
Para convertir u omitir objetos individuales, expanda la carpeta de la categoría y, a continuación, active o desactive la casilla situada junto al objeto.
Para convertir todos los objetos seleccionados, haga clic con el botón derecho en Bases de datos y seleccione Convertir esquema.
También puede crear scripts de objetos individuales o categorías de objetos haciendo clic con el botón derecho en el objeto o su carpeta principal y, a continuación, haciendo clic en Guardar como script.
Ver problemas de conversión
Es posible que algunos objetos MySQL no se conviertan. Para determinar las tasas de éxito de conversión, consulte el informe de conversión de resumen.
Visualización de un informe de resumen
En el Explorador de metadatos de MySQL, seleccione Bases de datos.
En el panel derecho, seleccione la pestaña Informe.
En este informe se muestra el informe de evaluación de resumen de todos los objetos de base de datos evaluados o convertidos. También puede ver un informe de resumen para objetos individuales:
Para ver el informe de un esquema individual, seleccione la base de datos en el Explorador de metadatos de MySQL.
Para ver el informe de un objeto individual, seleccione el objeto en el Explorador de metadatos de MySQL. Los objetos que tienen problemas de conversión tienen un icono de error rojo.
En el caso de los objetos con errores de conversión, puede ver la sintaxis que ha causado el error de conversión.
Visualización de problemas de conversión individuales
En el Explorador de metadatos de MySQL, expanda Bases de datos.
Expanda la base de datos que muestra un icono de error rojo.
En la base de datos, expanda una carpeta que tenga un icono de error rojo.
Seleccione el objeto que tiene un icono de error rojo.
En el panel derecho, seleccione la pestaña Informe.
En la parte superior de la pestaña Informe , es una lista desplegable. Si la lista muestra Estadísticas, cambie la selección a Origen.
SSMA muestra el código fuente y varios botones inmediatamente encima del código.
Haga clic en el botón Siguiente problema. Se trata de un icono de error rojo con una flecha que apunta a la derecha.
SSMA resalta el primer código fuente problemático que encuentre en el objeto actual.
Para cada elemento que no se pudo convertir, debe determinar lo que desea hacer con ese objeto:
Puede modificar el objeto en la base de datos MySQL para quitar o revisar el código problemático. Para cargar el código actualizado en SSMA, tiene que actualizar los metadatos. Para obtener más información, consulte Conexión a MySQL.
Puede excluir el objeto de la migración. En el Explorador de metadatos de SQL Server o de SQL Azure y el Explorador de metadatos de MySQL, desactive la casilla situada junto al elemento antes de cargar los objetos en SQL Server o Azure SQL y migrar datos desde MySQL.