No se puede ejecutar el script: memoria insuficiente para continuar la ejecución del programa

Respuestas:

123

utilice la herramienta de línea de comandos SQLCMD, que tiene menos memoria. Es tan simple como:

SQLCMD -d <database-name> -i filename.sql

Necesita credenciales válidas para acceder a su instancia de SQL Server o incluso para acceder a una base de datos

Tomado de aquí .

Thangamani Palanisamy
fuente
23
Con credenciales completas, especificando db y servidor: sqlcmd -S <SU-SERVIDOR> -U <SU-USUARIO> -P <SU-PASSWORD> -d <YOUR-DATABASE> -i <YOUR-SQL-FILE-PATH.sql >
a4bike
1
Recibo este problema: "El número de expresiones de valor de fila en la declaración INSERT excede el número máximo permitido de 1000 valores de fila".
Christian Fredh
3
agregar -epara conexión confiable
smurtagh
33

¡Podría ayudarte! Consulte los pasos a continuación.

sqlcmd -S nombre-servidor -d nombre-base-datos -i script.sql

  • Abra cmd.exe como administrador.
  • Crear directorio de documentos.
  • Coloque su archivo de script SQL (script.sql) en la carpeta de documentos.
  • Escriba consulta con sqlcmd, nombre de servidor, nombre de base de datos y nombre de archivo de secuencia de comandos como la consulta resaltada arriba o debajo de la pantalla de línea de comando.

ingrese la descripción de la imagen aquí

Anil Singh
fuente
Puede agregar el nombre de usuario -sa y la contraseña -123, sqlcmd -S viaserver -U sa -P 123 -d TelstraDeployed -i SQLQuery1.sql
Anil Singh
11

También puede simplemente aumentar el valor Mínimo de memoria por consulta en las propiedades del servidor. Para editar esta configuración, haga clic derecho en el nombre del servidor y seleccione Propiedades> pestaña Memoria.

Encontré este error al intentar ejecutar un script SQL de 30 MB en SSMS 2012. Después de aumentar el valor de 1024 MB a 2048 MB, pude ejecutar el script.

(Esta es la misma respuesta que proporcioné aquí )

Dstetsenko
fuente
9

Para la autenticación de Windows, use este cmd sql

SQLCMD -S TestSQLServer\SQLEXPRESS  -d AdventureWorks2018 -i "d:\document\sql document\script.sql"

Nota: Si hay algún espacio en la ruta del archivo sql, use "(Comillas)"

Para la autenticación de SQL Server, use este cmd sql

SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa  -d AdventureWorks2018 -i "d:\document\sql document\script.sql"

-S TestSQLServer \ SQLEXPRESS: aquí especifique el nombre de SQL Server

-Estados Unidos: usuario (en caso de autenticación de SQL Server)

-P sasa: contraseña (en caso de autenticación de SQL Server)

-d AdventureWorks2018: el nombre de la base de datos viene aquí

-i "d: \ document \ sql document \ script.sql": Ruta de archivo de SQLFile

Manjunath Bilwar
fuente
5

Si entiendo su problema correctamente, está intentando restaurar (transact sql) xyz.sql - database + schema. Puedes probar este comando que funcionó para mí:

SQLCMD -U sa -i xyz.sql
user3228486
fuente
4

Mi base de datos tenía más de 500 MB, luego usé lo siguiente

C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql

Cargó todo, incluidos los SP

* NB: Ejecute cmd como administrador

Zubeid Hendricks
fuente
2

A veces, debido al gran tamaño del script y los datos, nos encontramos con este tipo de error. El servidor necesita suficiente memoria para ejecutarse y dar el resultado. Simplemente podemos aumentar el tamaño de la memoria, por consulta.

Solo necesita ir a las propiedades del servidor SQL> pestaña Memoria (lado izquierdo)> Ahora establezca el límite máximo de memoria que desea agregar.

Además, hay una opción en la parte superior, "Resultados a texto", que consume menos memoria en comparación con la opción "Resultados a la cuadrícula", también podemos ir a Resultado a texto para menor ejecución de memoria.

Ankita shrivastava
fuente
2

El siguiente script funciona perfectamente:

sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x

Síntomas:

Al ejecutar un script de recuperación con la utilidad sqlcmd, el 'Sqlcmd: Error: Error de sintaxis en la línea XYZ cerca del comando' X 'en el archivo' file_name.sql '.' se encuentra un error.

Porque:

Esta es una limitación de la utilidad sqlcmd. Si el script SQL contiene el signo de dólar ($) en cualquier forma, la utilidad no puede ejecutar correctamente el script, ya que está sustituyendo todas las variables automáticamente de forma predeterminada.

Resolución:

Para ejecutar un script que tenga un signo de dólar ($) en cualquier forma, es necesario agregar el parámetro "-x" a la línea de comando.

p.ej

Original: sqlcmd -s nombre_servidor -d nombre_base_datos -E -ic: \ Temp \ Recovery_script.sql

Corregido: sqlcmd -s Server_name -d Database_name -E -ic: \ Temp \ Recovery_script.sql -x

Nimesh Khatri
fuente
$ comment fue muy útil. Gracias
Pale Ale
1

sqlcmd -S mamxxxxxmu \ sqlserverr -U sa -P x1123 -d QLDB -i D: \ qldbscript.sql

  • Abra el símbolo del sistema en ejecutar como administrador

  • ingrese el comando anterior

"mamxxxxxmu" es el nombre de la computadora "sqlserverr" es el nombre del servidor "sa" es el nombre de usuario del servidor "x1123" es la contraseña del servidor "QLDB" es el nombre de la base de datos "D: \ qldbscript.sql" es el archivo de script sql para ejecutar en la base de datos

Mahmaood Ali
fuente
1

Prueba este paso

1) Abrir PowerShell

2) Escriba este comando:

sqlcmd -S PCNAME\SQLEXPRESS -U user -P password -d databanse_name -i C:\script.sql

3) Presione Retorno

:-)

ingrese la descripción de la imagen aquí

daniele3004
fuente
1

Si necesita conectarse a LocalDB durante el desarrollo, puede usar:

sqlcmd -S "(localdb)\MSSQLLocalDB" -d dbname -i file.sql
lukyer
fuente