Ich habe eine 123 MB SQL-Datei, die ich auf meinem lokalen PC ausführen muss. Aber ich bekomme
Cannot execute script: Insufficient memory to continue the execution of the program
Wie kann man dieses Problem lösen?
Ich habe eine 123 MB SQL-Datei, die ich auf meinem lokalen PC ausführen muss. Aber ich bekomme
Cannot execute script: Insufficient memory to continue the execution of the program
Wie kann man dieses Problem lösen?
Antworten:
Verwenden Sie das Befehlszeilentool SQLCMD, das viel weniger Speicher benötigt. 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
Von hier genommen .
-e
Für vertrauenswürdige Verbindung hinzufügen
Es könnte dir helfen! Bitte beachten Sie die folgenden Schritte.
sqlcmd -S Servername -d Datenbankname -i script.sql
Sie können auch einfach den Mindestspeicher pro Abfragewert in den Servereigenschaften erhöhen. Um diese Einstellung zu bearbeiten, klicken Sie mit der rechten Maustaste auf den Servernamen und wählen Sie Eigenschaften> Registerkarte Speicher.
Beim Versuch, ein 30-MB-SQL-Skript in SSMS 2012 auszuführen, ist dieser Fehler aufgetreten. Nachdem der Wert von 1024 MB auf 2048 MB erhöht wurde, konnte ich das Skript ausführen.
(Dies ist die gleiche Antwort, die ich hier gegeben habe )
Verwenden Sie für die Windows-Authentifizierung dieses SQL-Cmd
SQLCMD -S TestSQLServer\SQLEXPRESS -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
Hinweis: Wenn im SQL-Dateipfad Speicherplatz vorhanden ist, verwenden Sie "(Anführungszeichen)".
Verwenden Sie für die SQL Server-Authentifizierung dieses SQL-Cmd
SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
-S TestSQLServer \ SQLEXPRESS: Geben Sie hier den SQL Server-Namen an
-U sa: Benutzername (bei SQL Server-Authentifizierung)
-P sasa: Passwort (bei SQL Server-Authentifizierung)
-d AdventureWorks2018: Datenbankname kommt hierher
-i "d: \ document \ sql document \ script.sql": Dateipfad von SQLFile
Wenn ich Ihr Problem richtig verstehe, versuchen Sie, xyz.sql - Datenbank + Schema wiederherzustellen (SQL abwickeln). Sie können diesen Befehl ausprobieren, der für mich funktioniert hat:
SQLCMD -U sa -i xyz.sql
Meine Datenbank war größer als 500 MB, ich habe dann Folgendes verwendet
C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql
Es wurde alles geladen, einschließlich SPs
* NB: Führen Sie das cmd als Administrator aus
Aufgrund der großen Größe des Skripts und der Daten tritt diese Art von Fehler manchmal auf. Der Server benötigt ausreichend Speicher, um das Ergebnis auszuführen und zu liefern. Wir können einfach die Speichergröße pro Abfrage erhöhen.
Sie müssen nur zu den Eigenschaften des SQL-Servers gehen> Registerkarte Speicher (linke Seite)> Legen Sie nun das maximale Speicherlimit fest, das Sie hinzufügen möchten.
Außerdem gibt es oben die Option "Ergebnisse zu Text", die im Vergleich zur Option "Ergebnisse zu Raster" weniger Speicher benötigt. Wir können auch "Ergebnis zu Text" wählen, um weniger Speicher auszuführen.
Das folgende Skript funktioniert perfekt:
sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x
Symptome:
Wenn Sie ein Wiederherstellungsskript mit dem Dienstprogramm sqlcmd ausführen, wird der Befehl 'Sqlcmd: Error: Syntax in Zeile XYZ neben dem Befehl' X 'in der Datei' file_name.sql 'angezeigt.' Fehler ist aufgetreten.
Ursache:
Dies ist eine Einschränkung des Dienstprogramms sqlcmd. Wenn das SQL-Skript in irgendeiner Form ein Dollarzeichen ($) enthält, kann das Dienstprogramm das Skript nicht ordnungsgemäß ausführen, da standardmäßig alle Variablen automatisch ersetzt werden.
Auflösung:
Um ein Skript mit einem Dollarzeichen ($) in irgendeiner Form auszuführen, muss der Befehlszeile der Parameter "-x" hinzugefügt werden.
z.B
Original: sqlcmd -s Servername -d Datenbankname -E -ic: \ Temp \ Recovery_script.sql
Behoben : sqlcmd -s Servername -d Datenbankname -E -ic: \ Temp \ Recovery_script.sql -x
sqlcmd -S mamxxxxxmu \ sqlserverr -U sa -P x1123 -d QLDB -i D: \ qldbscript.sql
Öffnen Sie die Eingabeaufforderung, um als Administrator ausgeführt zu werden
Geben Sie den obigen Befehl ein
"mamxxxxxmu" ist der Computername "sqlserverr" ist der Servername "sa" ist der Benutzername des Servers "x1123" ist das Passwort des Servers "QLDB" ist der Datenbankname "D: \ qldbscript.sql" ist die SQL-Skriptdatei, die in der Datenbank ausgeführt werden soll