SQL Server: ejecutar archivos de script grandes
-
03-07-2019 - |
Pregunta
Tengo una tabla de base de datos en un servidor de desarrollo que ahora está completamente poblada después de configurarla para que se ejecute con una rutina de importación para un archivo CSV que contiene 1,4 millones de filas.
Ejecuté el Asistente de publicación de base de datos en la tabla, y ahora tengo un script SQL de 286MB en mi máquina local. El problema es que no puedo entender cómo ejecutarlo. Si lo cargo en SQL Server Management Studio Express, aparece una ventana de alerta que dice "No se pudo completar la operación".
¿Alguna idea sobre cómo puedo ejecutar este script SQL?
Solución
Ejecutar algo tan grande dentro de una sola transacción no es una buena idea. Por lo tanto, recomendaría dividir el archivo en fragmentos más pequeños y manejables.
Otra opción es ver algunas de las otras formas de importar datos CSV directamente.
Otros consejos
use la herramienta sqlcmd para ejecutar el archivo ..
sqlcmd -S myServer\instanceName -i C:\myScript.sql
En caso de que tenga un " error de script " inexplicable para archivos sql grandes (> 100MB) que incluye varios INSERT, simplemente reemplace "INSERT INTO" por " IR INSERTAR EN " en su archivo, lo que reducirá el tamaño de la transacción.
Esta herramienta ( Big SQL Script File Runner ) en CodePlex ejecutará archivos de script de cualquier tamaño con log y GUI.
Añadiendo a la respuesta de Gulzar Nazim:
Si aún tiene una falla, intente especificar página de códigos de su archivo SQL usando la opción -f
:
sqlcmd -S myServer \ instanceName -d databaseName -i C: \ myScript.sql -f 65001
Estaba tratando de importar un archivo .dump desde SQLite (UTF-8 por defecto), y sqlcmd seguía arrojando un error después de encontrar el primer carácter especial. -f 65001
me lo arregló.
¿Por qué no usar DTS para importar el archivo CSV directamente?