Não é possível executar o script: memória insuficiente para continuar a execução do programa

88

Eu tenho um arquivo sql de 123 MB que preciso executar no meu PC local. Mas estou conseguindo

Cannot execute script: Insufficient memory to continue the execution of the program

insira a descrição da imagem aqui

Como resolver este problema?

user960567
fonte
@marc_s Quando clico em Ctlr + E, ele mostra imediatamente este erro
user960567

Respostas:

126

use a ferramenta de linha de comando SQLCMD, que é muito mais econômica na memória. É tão simples como:

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

Você precisa de credenciais válidas para acessar sua instância do SQL Server ou até mesmo para acessar um banco de dados

Retirado daqui .

Thangamani Palanisamy
fonte
26
Com credenciais completas, especificando db e servidor: sqlcmd -S <SEU-SERVER> -U <SEU-USER> -P <SEU-PASSWORD> -d <SEUBASE DE DADOS> -i <SEU SQL-FILE-PATH.sql >
a4bike
1
Eu recebo este problema: "O número de expressões de valor de linha na instrução INSERT excede o número máximo permitido de 1000 valores de linha."
Christian Fredh,
3
adicionar -epara conexão confiável
smurtagh
33

Isso pode te ajudar! Por favor, veja as etapas abaixo.

sqlcmd -S nome do servidor -d nome do banco de dados -i script.sql

  • Abra cmd.exe como administrador.
  • Crie o diretório de documentos.
  • Coloque seu arquivo SQL Script (script.sql) na pasta de documentos.
  • Digite a consulta com sqlcmd, nome do servidor, nome do banco de dados e nome do arquivo de script como a consulta destacada acima ou abaixo da tela da linha de comando.

insira a descrição da imagem aqui

Anil Singh
fonte
Você pode Aad o nome de usuário -sa e senha -123, sqlcmd -S viaserver -U sa -P 123 -d TelstraDeployed -i SQLQuery1.sql
Anil Singh
ele me dá um erro Sqlcmd: Erro: Mircorsoft SQL Server Native Client 10.0: O cliente não conseguiu estabelecer a conexão devido a uma falha de pré-login.
gbbosmiya
11

Você também pode simplesmente aumentar o valor mínimo de memória por consulta nas propriedades do servidor. Para editar esta configuração, clique com o botão direito no nome do servidor e selecione Propriedades> guia Memória.

Encontrei este erro ao tentar executar um script SQL de 30 MB no SSMS 2012. Depois de aumentar o valor de 1024 MB para 2048 MB, consegui executar o script.

(Esta é a mesma resposta que forneci aqui )

dstetsenko
fonte
10

Para autenticação do Windows, use este sql cmd

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

Nota: Se houver algum espaço no caminho do arquivo sql, use "(aspas)"

Para autenticação do SQL Server, use este sql cmd

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

-S TestSQLServer \ SQLEXPRESS: especifique aqui o nome do SQL Server

-EUA: usuário (no caso de autenticação do SQL Server)

-P sasa: Senha (no caso de autenticação do SQL Server)

-d AdventureWorks2018: nome do banco de dados vem aqui

-i "d: \ document \ sql document \ script.sql": Caminho do arquivo SQLFile

Manjunath Bilwar
fonte
5

Se entendi seu problema corretamente, você está tentando restaurar (transact sql) xyz.sql - banco de dados + esquema. Você pode tentar este comando que funcionou para mim:

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

Meu banco de dados era maior que 500 MB, então usei o seguinte

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

Carregou tudo incluindo SP's

* NB: Execute o cmd como Administrador

Zubeid Hendricks
fonte
2

Às vezes, devido ao grande tamanho do script e dos dados, encontramos esse tipo de erro. O servidor precisa de memória suficiente para executar e fornecer o resultado. Podemos simplesmente aumentar o tamanho da memória, por consulta.

Você só precisa ir para as propriedades do servidor sql> guia Memória (lado esquerdo)> Agora defina o limite máximo de memória que deseja adicionar.

Além disso, há uma opção no topo, "Resultados para texto", que consome menos memória, em comparação com a opção "Resultados para grade", também podemos ir para Resultado para Texto para menos execução de memória.

Ankita shrivastava
fonte
2

Experimente esta etapa,

1) Abra o PowerShell

2) Escreva este comando:

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

3) Pressione Return

:-)

insira a descrição da imagem aqui

daniele3004
fonte
2

O script abaixo funciona perfeitamente:

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

Sintomas:

Ao executar um script de recuperação com o utilitário sqlcmd, o 'Sqlcmd: Erro: Erro de sintaxe na linha XYZ próximo ao comando' X 'no arquivo' nome_do_arquivo.sql '.' erro é encontrado.

Causa:

Esta é uma limitação do utilitário sqlcmd. Se o script SQL contiver o cifrão ($) em qualquer formato, o utilitário não será capaz de executar o script corretamente, pois está substituindo todas as variáveis ​​automaticamente por padrão.

Resolução:

Para executar o script que possui o sinal de dólar ($) em qualquer formato, é necessário adicionar o parâmetro “-x” na linha de comando.

por exemplo

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

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

Nimesh khatri
fonte
$ comentário foi muito útil. Obrigado
Pale Ale
1

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

  • Abra o prompt de comando em executar como administrador

  • insira o comando acima

"mamxxxxxmu" é o nome do computador "sqlserverr" é o nome do servidor "sa" é o nome de usuário do servidor "x1123" é a senha do servidor "QLDB" é o nome do banco de dados "D: \ qldbscript.sql" é um arquivo de script sql para executar no banco de dados

Mahmaood ali
fonte
1

Se você precisa se conectar ao LocalDB durante o desenvolvimento, pode usar:

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