web-dev-qa-db-fra.com

Impossible d'exécuter le script: mémoire insuffisante pour poursuivre l'exécution du programme

J'ai un fichier SQL de 123 Mo que je dois exécuter sur mon PC local. Mais j'obtiens 

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

enter image description here

Comment résoudre ce problème?

64
user960567

utilisez l'outil de ligne de commande SQLCMD, qui est beaucoup plus maigre en mémoire. C'est aussi simple que:

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

Vous devez disposer d'informations d'identification valides pour accéder à votre instance SQL Server ou même pour accéder à une base de données.

Tiré de ici .

94

Cela pourrait vous aider! Veuillez voir les étapes ci-dessous.

sqlcmd -S nom-serveur -d nom-base-donnée -i script.sql

  • Ouvrez cmd.exe en tant qu'administrateur. 
  • Créer un répertoire de documents.
  • Placez votre fichier de script SQL (script.sql) dans le dossier de documents. 
  • Tapez requête avec sqlcmd, nom du serveur, nom de la base de données et nom du fichier de script, comme ci-dessus, requête en surbrillance ou sous l'écran de ligne de commande.

 enter image description here

19
Anil Singh

Vous pouvez également simplement augmenter la valeur Mémoire minimale par requête dans les propriétés du serveur. Pour modifier ce paramètre, cliquez avec le bouton droit sur le nom du serveur et sélectionnez Propriétés> onglet Mémoire.

J'ai rencontré cette erreur en essayant d'exécuter un script SQL de 30 Mo dans SSMS 2012. Après avoir augmenté la valeur de 1024 Mo à 2048 Mo, j'ai pu exécuter le script.

(C'est la même réponse que j'ai fournie ici )

8
dstetsenko

Si je comprends bien votre problème, vous essayez de restaurer (transact sql) xyz.sql - base de données + schéma. Vous pouvez essayer cette commande qui a fonctionné pour moi: 

SQLCMD -U sa -i xyz.sql
5
user3228486

Pour l’authentification Windows, utilisez cette cmd cmd

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

Remarque: S'il y a de l'espace dans le chemin du fichier SQL, utilisez "(guillemets)"

Pour l’authentification SQL Server, utilisez cette cmd cmd

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

-S TestSQLServer\SQLEXPRESS: Spécifiez ici le nom du serveur SQL

-U sa: Nom d'utilisateur (en cas d'authentification SQL Server)

-P sasa: Mot de passe (en cas d'authentification SQL Server)

-d AdventureWorks2018: Nom de la base de données venez ici

-i "d:\document\document SQL\script.sql": chemin du fichier SQLFile

4
Manjunath Bilwar

Parfois, en raison de la taille importante du script et des données, nous rencontrons ce type d'erreur. Le serveur a besoin de suffisamment de mémoire pour s'exécuter et donner le résultat. Nous pouvons simplement augmenter la taille de la mémoire, par requête.

Vous devez simplement aller dans les propriétés du serveur SQL> onglet Mémoire (côté gauche)> Maintenant, définissez la limite de mémoire maximale que vous souhaitez ajouter.

En outre, il existe une option en haut, "Résultats en texte", qui consomme moins de mémoire que l'option "Résultats en grille". Nous pouvons également utiliser Résultat en texte pour une exécution en mémoire moindre.

2

Le script ci-dessous fonctionne parfaitement:

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

Symptômes:

Lors de l’exécution d’un script de récupération avec l’utilitaire sqlcmd, l’erreur «Sqlcmd: Error: Erreur de syntaxe à la ligne XYZ près de la commande« X »du fichier« nom_fichier.sql ».

Cause:

Ceci est une limitation de l'utilitaire sqlcmd. Si le script SQL contient un signe dollar ($) sous quelque forme que ce soit, l'utilitaire ne peut pas exécuter correctement le script car il substitue automatiquement toutes les variables par défaut.

Résolution:

Pour exécuter un script avec un signe dollar ($) sous n’importe quelle forme, il est nécessaire d’ajouter le paramètre «-x» à la ligne de commande.

par exemple.

Original: Sqlcmd -s Nom du serveur -d Nom de la base de données -E -i c:\Temp\Recovery_script.sql

Correction: Sqlcmd -s nom_serveur -d nom_base_données -E -i c:\Temp\Recovery_script.sql -x

1
Nimesh khatri

Si vous devez vous connecter à LocalDB pendant le développement, vous pouvez utiliser:

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

Essayez cette étape,

1) Ouvrez PowerShell

2) Écrivez cette commande:

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

3) Appuyez sur Retour

:-)

 enter image description here

1
daniele3004

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

  • Ouvrir l'invite de commande en cours d'exécution en tant qu'administrateur

  • entrez la commande ci-dessus 

"mamxxxxxmu" est le nom de l'ordinateur "sqlserverr" est le nom du serveur "sa" est le nom d'utilisateur du serveur "x1123" est le mot de passe du serveur "QLDB" est le nom de la base de données "D:\qldbscript.sql" est un fichier script SQL à exécuter dans la base de données.

1
Mahmaood ali

Téléchargez SQL Server Management Studio 17.6 et essayez d’exécuter le script . Lien de téléchargement https://go.Microsoft.com/fwlink/?linkid=870039 Cela a fonctionné pour moi. J'avais un fichier de 214 MB.

0

Ma base de données était supérieure à 500 Mo, j'ai ensuite utilisé ce qui suit

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

Il a chargé tout, y compris les SP 

* NB: Lancer la cmd en tant qu'administrateur 

0
Zubeid Hendricks