Cómo exportar datos de SQL Server 2005 a MySQL [CERRADO] -- mysql campo con sql-server campo con csv campo con sql-server-2005 campo con bcp camp Relacionados El problema

How to export data from SQL Server 2005 to MySQL [closed]


88
vote

problema

Español
cerrado. Esta pregunta es off-topic . Actualmente no está aceptando respuestas.

¿Quieres mejorar esta pregunta? Actualizar la pregunta por lo que es en- Tema para el desbordamiento de la pila.

cerrado 8 años .

Mejorar esta pregunta

He estado golpeando mi cabeza contra SQL Server 2005 tratando de obtener muchos datos. Me han dado una base de datos con casi 300 mesas en ella y necesito convertir esto en una base de datos MySQL. Mi primera llamada fue usar BCP, pero desafortunadamente no produce cuerdas CSV válidas no están encapsuladas, por lo que no puede lidiar con ninguna fila que tenga una cadena con una coma en él (o lo que sea que use como delimitador) Y todavía tendría que escribir todas las declaraciones de la tabla Crear, como obviamente, CSV no le indica nada sobre los tipos de datos.

Lo que sería mejor es si hubiera alguna herramienta que pudiera conectarse tanto a SQL Server como a MySQL, entonces haz una copia. Pierde vistas, procedimientos almacenados, disparadores, etc., pero no es difícil copiar una tabla que solo usa tipos de base de una dB a otra ... ¿es?

¿Alguien sabe de tal herramienta? No me importa la cantidad de suposiciones que hace o qué simplificaciones ocurren, siempre y cuando admita enteros, flotadores, datetime y cadena. Tengo que hacer mucha poda, normalización, etc. De todos modos, así que no me importa mantener las llaves, las relaciones o algo así, ¡pero necesito el conjunto inicial de datos en rápido!

Original en ingles

I've been banging my head against SQL Server 2005 trying to get a lot of data out. I've been given a database with nearly 300 tables in it and I need to turn this into a MySQL database. My first call was to use bcp but unfortunately it doesn't produce valid CSV - strings aren't encapsulated, so you can't deal with any row that has a string with a comma in it (or whatever you use as a delimiter) and I would still have to hand write all of the create table statements, as obviously CSV doesn't tell you anything about the data types.

What would be better is if there was some tool that could connect to both SQL Server and MySQL, then do a copy. You lose views, stored procedures, trigger, etc, but it isn't hard to copy a table that only uses base types from one DB to another... is it?

Does anybody know of such a tool? I don't mind how many assumptions it makes or what simplifications occur, as long as it supports integer, float, datetime and string. I have to do a lot of pruning, normalising, etc. anyway so I don't care about keeping keys, relationships or anything like that, but I need the initial set of data in fast!

</div
              
         
         

Lista de respuestas

59
 
vote

La mejor manera que he encontrado es el kit de herramientas de migración mysql proporcionada por MySQL. Lo he usado con éxito para algunos grandes proyectos de migración.

 

The best way that I have found is the MySQL Migration Toolkit provided by MySQL. I have used it successfully for some large migration projects.

</div
 
 
       
       
9
 
vote

Uso de MSSQL Management Studio He realizado tablas con el MySQL OLE DB. Haga clic con el botón derecho en su base de datos y vaya a "Tareas y GT; Datos de exportación", desde allí, puede especificar una fuente de DB de Ole MSSQL, la fuente MYSQL OLE DB y crear las asignaciones de columna entre las dos fuentes de datos.

Es más probable que desee configurar la base de datos y las tablas con anticipación en el destino MYSQL (la exportación desea crear las tablas automáticamente, pero esto a menudo resulta en la falla). Puede crear rápidamente las tablas en MySQL utilizando las "Tareas y GT; Generar scripts" haciendo clic derecho en la base de datos. Una vez que se genera sus scripts de creación, deberá pasar a paso y buscar / reemplazar para las palabras clave y los tipos que existen en MSSQL a MySQL.

Por supuesto, también podría respaldar la base de datos como Normal y encontrar una utilidad que restaurará la copia de seguridad MSSQL en MySQL. No estoy seguro de si uno existe sin embargo.

 

Using MSSQL Management Studio i've transitioned tables with the MySQL OLE DB. Right click on your database and go to "Tasks->Export Data" from there you can specify a MsSQL OLE DB source, the MySQL OLE DB source and create the column mappings between the two data sources.

You'll most likely want to setup the database and tables in advance on the MySQL destination (the export will want to create the tables automatically, but this often results in failure). You can quickly create the tables in MySQL using the "Tasks->Generate Scripts" by right clicking on the database. Once your creation scripts are generated you'll need to step through and search/replace for keywords and types that exist in MSSQL to MYSQL.

Of course you could also backup the database like normal and find a utility which will restore the MSSQL backup on MYSQL. I'm not sure if one exists however.

</div
 
 
9
 
vote

SQL Server 2005 "Standard", "desarrollador" y las ediciones "Enterprise" tienen ssis , que reemplazó DTS de SQL Server 2000. SSIS tiene una conexión incorporada a su propio DB, y puede encontrar una conexión que otra persona haya escrito para MySQL. aquí es un ejemplo. Una vez que tenga sus conexiones, debe poder crear un paquete SSIS que mueva los datos entre los dos.

No tengo que mover los datos de SQLSERVER a MySQL, pero me imagino que una vez que se instale la conexión MySQL, funciona igual que los datos en movimiento entre dos SQLSERVER DBS, que es bastante directo.

 

SQL Server 2005 "Standard", "Developer" and "Enterprise" editions have SSIS, which replaced DTS from SQL server 2000. SSIS has a built-in connection to its own DB, and you can find a connection that someone else has written for MySQL. Here is one example. Once you have your connections, you should be able to create an SSIS package that moves data between the two.

I ddin't have to move data from SQLServer to MySQL, but I imagine that once the MySQL connection is installed, it works the same as moving data between two SQLServer DBs, which is pretty straight forward.

</div
 
 
8
 
vote

Rolling Su propia solución PHP sin duda funcionará aunque no estoy seguro de si hay una buena manera de duplicar automáticamente el esquema de una DB a la otra (tal vez esta fue su pregunta).

Si solo está copiando datos y / o necesita un código personalizado de todos modos para convertir entre esquemas modificados entre los dos DB's, recomendaría usar PHP 5.2+ y las bibliotecas de PDO. Podrá conectarse utilizando PDO ODBC (y use los controladores MSSQL). Tuve muchos problemas para obtener grandes campos de texto y caracteres de varios bytes de MSSQL en PHP utilizando otras bibliotecas.

 

Rolling your own PHP solution will certainly work though I'm not sure if there is a good way to automatically duplicate the schema from one DB to the other (maybe this was your question).

If you are just copying data, and/or you need custom code anyway to convert between modified schemas between the two DB's, I would recommend using PHP 5.2+ and the PDO libraries. You'll be able to connect using PDO ODBC (and use MSSQL drivers). I had a lot of problems getting large text fields and multi-byte characters from MSSQL into PHP using other libraries.

</div
 
 
6
 
vote

Otra herramienta para probar sería la SQLMAESTRO SUITE . Es un poco complicado clavado en la herramienta precisa, pero tienen una variedad de herramientas, tanto gratis como para comprar que manejan una amplia variedad de tareas para múltiples plataformas de base de datos. Le sugeriría probar la herramienta del asistente de datos primero para MySQL, ya que creo que tendrá la herramienta de "importación" adecuada que necesita.

 

Another tool to try would be the SQLMaestro suite. It is a little tricky nailing down the precise tool, but they have a variety of tools, both free and for purchase that handle a wide variety of tasks for multiple database platforms. I'd suggest trying the Data Wizard tool first for MySQL, since I believe that will have the proper "import" tool you need.

</div
 
 

Relacionados problema

88  Cómo exportar datos de SQL Server 2005 a MySQL [CERRADO]  ( How to export data from sql server 2005 to mysql ) 
cerrado. Esta pregunta es off-topic . Actualmente no está aceptando respuestas. ¿Quieres ...

0  ¿Hay alguna forma de que las llamadas BCP existentes sigan funcionando si se agrega la columna a la tabla en Sybase?  ( Is there way to have existing bcp calls still work if column is added to table i ) 
Tengo un montón de programas de clientes que llaman BCP para poner datos en una tabla SYBASE. Necesito agregar una columna a la tabla Sybase. Si predetermin...

7  ¿Puede SQL Server Bulk Insert Lea de un tubo / FIFO nombrado?  ( Can sql server bulk insert read from a named pipe fifo ) 
es posible que el inserto a granel / BCP lea de un tubo con nombre, FIFO -STILA ? Es decir, en lugar de leer de un archivo de texto real, se puede hacer u...

2  QueryOut BCP -W generando un archivo CSV incorrecto  ( Bcp queryout w generating wrong csv file ) 
Estoy tratando de generar un archivo CSV con BCP. Mi problema es que tengo algunas columnas NVARCHAR, por lo que debo usar el parámetro -W para la utilidad BC...

0  "Datos de cadena, truncamiento correcto" Llame a BCP  ( String data right truncation call bcp ) 
Este es el comando BCP que utilizo para insertar datos en SQL Server: bcp sfnav.dbo.Customer in "C:UsersTSLDesktopTSL DataID_Customer_151124.csv" -F2 -c -t...

0  MSSQLSERVERVER2000 DATA EXPORTACIÓN AL ARCHIVO DE TEXTO?  ( Mssqlserver2000 data export to text file ) 
Necesito exportar todos los datos de una base de datos a un archivo de texto o CSV desde MSSQL Server2000. He leído de MSDN y encontré que una herramienta 'BC...

3  ¿Puede BCP copiar datos directamente de la tabla a la mesa?  ( Can bcp copy data directly from table to table ) 
Tengo una situación en la que necesito copiar varias tablas de una DB de SQL Server a un DB de SQL Server separado. Las bases de datos están ambas en la misma...

0  BCP SQL Server en una tabla  ( Bcp sql server into a table ) 
Estoy intentando bcp un archivo en una tabla que tiene las mismas columnas que el archivo que se está introduciendo comando bcp EXEC xp_cmdshell 'BCP [CM...

3  SQL Server BCP Utild Separator Carácter del separador para usar  ( Sql server bcp utility best separator character to use ) 
Estoy seguro de que muchos se encontrarían con este escenario. Cada vez que usamos la utilidad BCP de SQL Server para importar / exportar datos a partir de ...

2  Copiando grandes cantidades de datos en una base de datos SQL CE  ( Copying large amounts of data into a sql ce database ) 
Si tengo una gran cantidad de datos en la memoria, ¿cuál es la mejor manera de copiarlo en una tabla de SQL CE? La pila de tecnología actual es C #, ADO.NET y...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos