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 olvide que si está utilizando una instancia de SQL, la sintaxis es:
sqlcmd -S <server>\instance.
Aquí está la lista de todos los argumentos que puede pasar 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]
INSERT INTO table_name (text) VALUES ('some text bla bla 'bla' text')
. Tengo un error con las comillas. Entonces, ¿qué debo usar (qué parámetro) para manejar este error? GraciasTuve exactamente el mismo problema y había estado luchando por un tiempo, luego finalmente encontré la solución que consiste en establecer el
-a
parámetrosqlcmd
en para cambiar su tamaño de paquete predeterminado:fuente
sqlcmd -S <Servername> -U <Username> -P <password> -d <Databasename> -i <filename>
Puedes usar esta herramienta también. Es realmente útil
BigSqlRunner
fuente
Tomar el símbolo del sistema con privilegio de administrador
Cambie el directorio a donde estaba almacenado 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
fuente
Estoy usando MSSQL Express 2014 y ninguna de las soluciones funcionó para mí. Todos simplemente bloquearon 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:
fuente
Ejecútelo en la línea de comando con osql, vea aquí:
http://metrix.fcny.org/wiki/display/dev/How+to+execute+a+.SQL+script+using+OSQL
fuente
sqlcmd
reemplazaosql
.Tuve un problema similar Mi archivo con script sql tenía más de 150 MB de tamaño (con casi 900k de INSERT s muy simples ). Utilicé la solución aconsejada por Takuro (como la respuesta en esta pregunta) pero aún recibí un mensaje de error que decía que no había suficiente memoria ("No hay suficiente memoria del sistema en el grupo de recursos 'interno' para ejecutar esta consulta").
Lo que me ayudó fue que puse el comando GO después de cada 50k INSERT s.
(No está abordando directamente la pregunta (tamaño del archivo) pero creo que resuelve el problema que está indirectamente conectado con el gran tamaño del script sql en sí. En mi caso, muchos comandos de inserción)
fuente
Tu pregunta es bastante similar a esta
Puede guardar su archivo / script como .txt o .sql y ejecutarlo desde Sql Server Management Studio (creo que el menú es Abrir / Consultar, luego simplemente ejecute la consulta en la interfaz SSMS). Es posible que deba actualizar la primera línea, que indica la base de datos que se creará o seleccionará en su máquina local.
Si tiene que hacer esta transferencia de datos con mucha frecuencia, puede optar por la replicación. Dependiendo de sus necesidades, la replicación de instantáneas podría estar bien. Si tiene que sincronizar los datos entre sus dos servidores, podría optar por un modelo más complejo, como la replicación de mezcla.
EDITAR: No me di cuenta de que tenía problemas con SSMS vinculado al tamaño del archivo. Luego, puede ir a la línea de comandos, según lo propuesto por otros, replicación de instantáneas (publicar en su servidor principal, suscribirse en su servidor local, replicar y luego cancelar la suscripción) o incluso hacer una copia de seguridad / restaurar
fuente
Entonces puede resultarle más simple simplemente DTS (o SSIS, si se trata de SQL Server 2005+) los datos, si los dos servidores están en la misma red.
Si los dos servidores no están en la misma red, puede hacer una copia de seguridad de la base de datos de origen y restaurarla en una nueva base de datos en el servidor de destino. Luego puede usar DTS / SSIS, o incluso un simple
INSERT INTO SELECT
, para transferir las dos tablas a la base de datos de destino.fuente
Espero que esto te ayude!
fuente
Me he encontrado con el mismo problema e invertí todo un día para encontrar la salida, pero esto se resuelve al hacer la copia del archivo .sql y cambiar la extensión al archivo .txt y abrir el archivo .txt en el navegador Chrome. He visto la magia y el archivo se abre en un navegador.
Gracias y un saludo,
fuente