Como se mencionó anteriormente, si sus datos contienen caracteres tabulados, comas o nuevas líneas en sus datos, será muy difícil exportarlos e importarlos con CSV. Los valores se desbordarán fuera de los campos y obtendrá errores. Este problema es aún peor si alguno de sus campos largos contiene texto de varias líneas con caracteres de nueva línea en ellos.
Mi método en estos casos es utilizar la utilidad de línea de comandos BCP para exportar los datos del servidor SQL, luego usar el comando LOAD DATA INFILE .. INTO TABLE en MySQL para volver a leer el archivo de datos. BCP es uno de las utilidades de línea de comandos de SQL Server más antiguas (que datan del nacimiento de SQL Server - v6.5) pero aún existen y siguen siendo una de las formas más fáciles y confiables de obtener datos.
Para utilizar esta técnica es necesario crear cada tabla de destino con el mismo o equivalente esquema en MySQL. Lo hago haciendo clic derecho en la base de datos en el administrador de la empresa SQL, luego Tareas-> Generar secuencias de comandos ... y crear una secuencia de comandos SQL para todas las tablas. A continuación, debe convertir manualmente el script en SQL compatible con MySQL (definitivamente la peor parte del trabajo) y finalmente ejecutar los comandos CREATE TABLE en la base de datos MySQL para tener tablas coincidentes con las versiones del servidor SQL en columna, vacías y listas para datos.
A continuación, exporte los datos desde el lado MS-SQL de la siguiente manera.
bcp DatabaseName..TableName out TableName.dat -q -c -T -S ServerName -r \0 -t !\t!
(Si está utilizando SQL Server Express, utilice un valor -S este modo: -S "equipo \ SQLExpress")
que creará un archivo llamado TableName.dat, con campos delimitados por! [tab]! y filas delimitadas por \ 0 caracteres NUL.
Ahora copia los archivos .dat en/tmp en el servidor MySQL y carga en el lado de MySQL, así:
LOAD DATA INFILE '/tmp/TableName.dat' INTO TABLE TableName FIELDS TERMINATED BY '!\t!' LINES TERMINATED BY '\0';
No olvide que las tablas (TableName en este ejemplo) deben ser creados ya en el lado de MySQL.
Este procedimiento es dolorosamente manual cuando se trata de convertir el esquema SQL, sin embargo, funciona incluso para los datos más difíciles y porque utiliza archivos planos, nunca es necesario convencer a SQL Server para que hable con MySQL, o viceversa .
Tengo un MS SQL base de datos y quiero importar los datos en él a MYSQL para reemplazar el sistema original. Ahora he encontrado una versión anterior de Migration Toolkit pero todavía no he logrado conectarme con MS SQL Server. – matkins
Quizás esto podría ayudar. http://stackoverflow.com/questions/2986404/convert-tsql-to-mysql/23088879#23088879 – Madagaga
Estoy de acuerdo. Todavía no encuentro nada que me ayude sustancialmente a convertir de mssql a mysql, a pesar de que este tema está marcado como duplicado. Mssql to Mysql es un tema tan variado caso por caso. Es bastante insultante para quienes marcaron esto como duplicado. ¡Qué ignorante! – Curly