it-swarm.com.de

Fehler beim Ausführen eines 50-MB-Skripts unter SQL Server 2008 R2

Ich verwende SQL Server 2008 R2. Ich habe ein Skript zum Aktualisieren der Datenbank. Dieses Skript ist ca. 50 MB groß und enthält ca. 800.000 Zeilen.

Error:

TITEL: Microsoft SQL Server Management Studio

Skript kann nicht ausgeführt werden.

ZUSÄTZLICHE INFORMATION:

Nicht genügend Speicher, um die Ausführung des Programms fortzusetzen. (mscorlib)

Kann mir jemand helfen, dieses Skript auszuführen, ohne diesen Fehler zu erhalten?

56
Vikrant More

verwenden Sie das Befehlszeilentool SQLCMD, das viel speicherplatzsparender ist. Es ist so einfach wie:

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

Sie benötigen gültige Anmeldeinformationen, um auf Ihre SQL Server-Instanz oder sogar auf eine Datenbank zuzugreifen

88
user1293068

Zur Antwort von @ user1293068 musste der Instanzname angegeben werden. Hier ist meine vollständige Syntax:

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

Dies ist im Technet-Artikel Verwenden Sie das Dienstprogramm sqlcmd dokumentiert.

(Beachten Sie, dass Sie einen Schalterwert von "-S" eingeben müssen, nicht von "-s". Der Schalter unterscheidet zwischen Groß- und Kleinschreibung.)

56

Sie können auch versuchen, den Wert für "Maximaler Serverspeicher" in den Servereigenschaften zu erhöhen.
Um diese Einstellung zu bearbeiten, klicken Sie mit der rechten Maustaste auf den Servernamen und wählen Sie Eigenschaften> Registerkarte Speicher.

Bei dem Versuch, ein SQL-Skript 30MB In SSMS 2012 auszuführen, ist dieser Fehler aufgetreten.
Nachdem ich den Wert von 1024MB Auf 2048MB Erhöht habe, konnte ich das Skript ausführen.

12
dstetsenko

Wenn Anmeldeinformationen erforderlich sind

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

Ok, keine der Antworten reichte aus, um mein Skript erfolgreich wiederherzustellen.

So:

  1. Stellen Sie sicher, dass Ihr Netzwerkkonto über ausreichende Berechtigungen für den Zugriff auf die SQL Server-Instanz und die bestimmte Datenbank verfügt, die Sie wiederherstellen möchten.

  2. Es ist am besten, dass die Datenbank, die Sie wiederherstellen möchten, tatsächlich vorhanden ist, wenn sie lediglich aus Generate Scripts generiert wurde (mit Änderungen, die sowohl Schema als auch Daten umfassen).

  3. Führen Sie das Befehlszeilentool im Administratormodus aus (falls erforderlich), z. B. geben Sie im Startmenü unter Ausführen den Befehl CMD ein

  4. Geben Sie im Befehlszeilentool Folgendes ein: "SQLCMD -d CMS -i C:\Carnotaurus\Data\script.sql". Hier ist CMS der Name der Datenbank, die ich wiederherstellen möchte, und "C:\Carnotaurus\Data\script.sql" ist der vollständige Dateipfad des Wiederherstellungsskripts, das von Generate Scripts in SMSS generiert wurde.

Ich hoffe das klärt ein paar fehlende Schritte auf.

6
CarneyCode