¿Cómo se importa un archivo MS SQL .sql grande?

Resuelto Jack asked hace 15 años • 13 respuestas

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.

Jack avatar Jan 11 '09 05:01 Jack
Aceptado

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] 
Ray Booysen avatar Jan 10 '2009 22:01 Ray Booysen

Tuve exactamente el mismo problema y estuve luchando por un tiempo y finalmente encontré la solución, que es establecer -ael parámetro sqlcmdpara cambiar el tamaño de paquete predeterminado:

sqlcmd -S [servername] -d [databasename] -i [scriptfilename] -a 32767
Takuro avatar Mar 14 '2013 08:03 Takuro

También puedes utilizar esta herramienta. Es realmente útil.

BigSqlRunner

NB: enlace roto, así que lo actualicé.

Yigit Yuksel avatar Aug 25 '2015 09:08 Yigit Yuksel
  1. Tome el símbolo del sistema con privilegios de administrador

  2. Cambie el directorio donde se almacenó el archivo .sql

  3. Ejecute el siguiente comando

    sqlcmd -S 'your server name' -U 'user name of server' -P 'password of server' -d 'db name'-i script.sql

Syam Kumar avatar Jun 03 '2016 09:06 Syam Kumar

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();
    }
}
Animus Miles-Militis avatar Apr 06 '2017 07:04 Animus Miles-Militis