web-dev-qa-db-fra.com

Obtention d'une erreur lors de l'exécution d'un script de 50 Mo sur SQL Server 2008 R2

J'utilise SQL Server 2008 R2, j'ai un script pour mettre à jour la base de données, ce script fait environ 50 Mo et contient environ 800 000 lignes.

Erreur:

TITRE: Microsoft SQL Server Management Studio

Impossible d'exécuter le script.

INFORMATION ADDITIONNELLE:

Mémoire insuffisante pour poursuivre l'exécution du programme. (mscorlib)

Quelqu'un peut-il m'aider à exécuter ce script sans obtenir cette erreur?

56
Vikrant More

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

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

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

88
user1293068

En ajoutant à la réponse de @ user1293068, je devais spécifier le nom de l'instance. Voici ma syntaxe complète:

sqlcmd -S <ComputerName>\<InstanceName> -d <DatabaseName> -i <MyScript.sql>

Ceci est documenté sur l'article de Technet se the sqlcmd Utility .

(Notez que vous devez entrer une valeur de commutateur "-S", pas "-s". Le commutateur est sensible à la casse.)

56
Chris Schiffhauer

Vous pouvez également essayer d'augmenter la valeur de mémoire maximale du serveur 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 30MB Script SQL dans SSMS 2012.
Après avoir augmenté la valeur de 1024MB à 2048MB J'ai pu exécuter le script.

12
dstetsenko

Si des informations d'identification sont requises

sqlcmd -S <ComputerName>\<InstanceName> -U <username> -P <password> -d <DatabaseName> -i <MyScript.sql>
12
Jude

D'accord, aucune des réponses n'était suffisante pour réussir la restauration de mon script.

Alors:

  1. Assurez-vous que votre compte réseau dispose des autorisations suffisantes pour accéder à la fois à l'instance SQL Server et à la base de données spécifique que vous souhaitez restaurer.

  2. Il est préférable que la base de données que vous souhaitez restaurer existe réellement, si elle a été simplement générée à partir de la génération de scripts (avec des modifications pour inclure à la fois le schéma et les données)

  3. Exécutez l'outil de ligne de commande en mode Administrateur (si nécessaire), par exemple, tapez CMD dans Exécuter dans le menu Démarrer

  4. Dans l'outil de ligne de commande, tapez quelque chose comme "SQLCMD -d CMS -i C:\Carnotaurus\Data\script.sql". Ici, CMS est le nom de la base de données que j'ai l'intention de restaurer et "C:\Carnotaurus\Data\script.sql" est le chemin de fichier complet du script de restauration qui a été généré par les scripts de génération dans SMSS.

J'espère que cela clarifie quelques étapes manquantes.

6
CarneyCode