¿Cómo se importa un archivo MS SQL .sql grande?
Utilizo la comparación de datos RedGate SQL y generé un archivo .sql para poder ejecutarlo en mi máquina local. Pero el problema es que el archivo tiene más de 300 MB, lo que significa que no puedo copiar y pegar porque el portapapeles no podrá manejarlo, y cuando intento abrir el archivo en SQL Server Management Studio aparece un error. acerca de que el archivo es demasiado grande.
¿Hay alguna manera de ejecutar un archivo .sql grande? El archivo básicamente contiene datos para dos tablas nuevas.
Desde el símbolo del sistema, inicie sqlcmd
:
sqlcmd -S <server> -i C:\<your file here>.sql
Simplemente reemplácelo <server>
con la ubicación de su cuadro SQL y <your file here>
con el nombre de su script. No olvides que si estás utilizando una instancia de SQL, la sintaxis es:
sqlcmd -S <server>\instance.
Aquí está la lista de todos los argumentos que puede pasar a sqlcmd:
Sqlcmd [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w screen width]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-c cmdend] [-L[c] list servers[clean output]]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-m errorlevel] [-V severitylevel] [-W remove trailing spaces]
[-u unicode output] [-r[0|1] msgs to stderr]
[-i inputfile] [-o outputfile] [-z new password]
[-f | i:[,o:]] [-Z new password and exit]
[-k[1|2] remove[replace] control characters]
[-y variable length type display width]
[-Y fixed length type display width]
[-p[1] print statistics[colon format]]
[-R use client regional setting]
[-b On error batch abort]
[-v var = "value"...] [-A dedicated admin connection]
[-X[1] disable commands, startup script, environment variables [and exit]]
[-x disable variable substitution]
[-? show syntax summary]
Tuve exactamente el mismo problema y estuve luchando por un tiempo y finalmente encontré la solución, que es establecer -a
el parámetro sqlcmd
para cambiar el tamaño de paquete predeterminado:
sqlcmd -S [servername] -d [databasename] -i [scriptfilename] -a 32767
También puedes utilizar esta herramienta. Es realmente útil.
BigSqlRunner
NB: enlace roto, así que lo actualicé.
Tome el símbolo del sistema con privilegios de administrador
Cambie el directorio donde se almacenó el archivo .sql
Ejecute el siguiente comando
sqlcmd -S 'your server name' -U 'user name of server' -P 'password of server' -d 'db name'-i script.sql
Estoy usando MSSQL Express 2014 y ninguna de las soluciones funcionó para mí. Todos simplemente fallaron SQL. Como solo necesitaba ejecutar un script único con muchas instrucciones de inserción simples, lo solucioné escribiendo una pequeña aplicación de consola como último recurso:
class Program
{
static void Main(string[] args)
{
RunScript();
}
private static void RunScript()
{
My_DataEntities db = new My_DataEntities();
string line;
System.IO.StreamReader file =
new System.IO.StreamReader("c:\\ukpostcodesmssql.sql");
while ((line = file.ReadLine()) != null)
{
db.Database.ExecuteSqlCommand(line);
}
file.Close();
}
}