none
Ejecución archivo .sql de 547 Mb RRS feed

  • Pregunta

  • Buenas.  Ya busqué e intenté con lo que recomiendan en otros temas del foro y no he podido.  Tengo la siguiente situación:  un archivo script archivo.sql de 547 Mb.  En él, primero elimina las tablas si existen y luego las crea, para luego insertar registros.  La base de datos ya existe.  Al usar sqlcmd estoy escribiendo esto:

    sqlcmd -S servidor -d basededatos -U usuariodebd -P passwordusuario -i C:\archivo.sql -o C:\resultado.txt

    Al dar enter empieza el proceso, luego de un rato termina sin mostrar aviso en la ventana de comandos. Al revisar el archivo resultado.txt, se ve lo mismo que en el script, pero al final muestra un mensaje:

    Shared Memory Provider: No hay ningún proceso en el otro extremo de la canalización.

    Communication link failure

    *¿Tendrá algo que ver que fue sacado de una base de datos en MySQL?

    *El archivo resultado.txt mide exactamente lo mismo que el script

    *He visto en otros temas que han podido correr con éxito el archivo aún cuando son más grandes que el mío

    Podrían echarme una mano? Gracias


    Carlos Mora, foro MSDN

    jueves, 27 de febrero de 2020 16:04

Respuestas

  • Hola Carlos Mora:

    Los scripts que se generan desde diferentes gestores de bases de datos, pueden no ser compatibles al 100%.

    La primera opción es intentarlo desde el management studio pero por partes.

    Abres el mismo, pegas el script completo, seleccionas varias partes del código sql y ejecutas.Vuelves a seleccionar otra parte del código y ejecutas. Hasta que encuentres el error. Con el error, ya se puede buscar una solución.


    • Marcado como respuesta Liyos jueves, 27 de febrero de 2020 17:57
    jueves, 27 de febrero de 2020 16:38
  • Una observacion: no podras pegar el script completo de 547 MB en SSMS. No aguanta tanto, se queda "traspuesto" mucho antes de llegar a ese volumen. Necesitaras abrirlo en algun otro editor de texto que lo admita, y desde ahi copiar poco a poco los pedazos oportunos al management studio.

    Una vez en Management Studio, fijate en cuales son los errores que se producen y corrigelos hasta que funcione. Eso te dira cuales son las diferencias entre los scripts que copiaste de MySQL y el dialecto de SQL que entiende SQL Server. Y cuando ya conozcas esas diferencias, aplicalas sobre tu archivo de 547 MB; con un poco de suerte se podran hacer los cambios usando "buscar y reemplazar" en un editor de texto potente.

    • Marcado como respuesta Liyos jueves, 27 de febrero de 2020 17:59
    jueves, 27 de febrero de 2020 16:48

Todas las respuestas

  • Hola Carlos Mora:

    Los scripts que se generan desde diferentes gestores de bases de datos, pueden no ser compatibles al 100%.

    La primera opción es intentarlo desde el management studio pero por partes.

    Abres el mismo, pegas el script completo, seleccionas varias partes del código sql y ejecutas.Vuelves a seleccionar otra parte del código y ejecutas. Hasta que encuentres el error. Con el error, ya se puede buscar una solución.


    • Marcado como respuesta Liyos jueves, 27 de febrero de 2020 17:57
    jueves, 27 de febrero de 2020 16:38
  • Una observacion: no podras pegar el script completo de 547 MB en SSMS. No aguanta tanto, se queda "traspuesto" mucho antes de llegar a ese volumen. Necesitaras abrirlo en algun otro editor de texto que lo admita, y desde ahi copiar poco a poco los pedazos oportunos al management studio.

    Una vez en Management Studio, fijate en cuales son los errores que se producen y corrigelos hasta que funcione. Eso te dira cuales son las diferencias entre los scripts que copiaste de MySQL y el dialecto de SQL que entiende SQL Server. Y cuando ya conozcas esas diferencias, aplicalas sobre tu archivo de 547 MB; con un poco de suerte se podran hacer los cambios usando "buscar y reemplazar" en un editor de texto potente.

    • Marcado como respuesta Liyos jueves, 27 de febrero de 2020 17:59
    jueves, 27 de febrero de 2020 16:48
  • Si tu archivo .SQL es demasiado grande, tendras problemas el ejecutarlo, "partelo" en pedazos y ejecutalo con la siguiente instruccion

    for %%G in (*.sql) do sqlcmd /S TUSERVER /d TUBASE -U TUUSER -P TUPASSWORD -i"%%G"
    pause

    Con un archivo de lotes o bat

    Saludos


    IIslas Master Consultant SQL Server

    jueves, 27 de febrero de 2020 17:21
  • Gracias Javi Fernández.

    Pues resulta que no me abre el script en el Management Studio, pero sí en Notepad++ (a duras penas).  Pero entonces fui pegando partes y he encontrado algunas cosas.  Como lo menciona, hay cosas que el SSMS ve como error, los eliminé y se creó una tabla, eso sí, aún sin contenido, pero ya es algo.

    Lo malo es que no es un error, son varios, pero con eso me entretengo, buscando y corrigiendo.

    Saludos


    Carlos Mora, foro MSDN

    jueves, 27 de febrero de 2020 17:57
  • Pues si Alberto, he ido haciendo lo que dices. Abrí el script en Notepad++, copié y pegué sólo una parte donde se crea una tabla, salen varios errores, los fui corrigiendo o eliminando (para probar) y me ha creado la tabla sin problema, sin contenido aún pero ya es algo.

    Gracias


    Carlos Mora, foro MSDN

    jueves, 27 de febrero de 2020 17:59
  • De nada Carlos
    jueves, 27 de febrero de 2020 19:05