Mam plik sql o rozmiarze 123 MB, który muszę wykonać na moim lokalnym komputerze. Ale dostaję
Cannot execute script: Insufficient memory to continue the execution of the program
Jak rozwiązać ten problem?
Mam plik sql o rozmiarze 123 MB, który muszę wykonać na moim lokalnym komputerze. Ale dostaję
Cannot execute script: Insufficient memory to continue the execution of the program
Jak rozwiązać ten problem?
Odpowiedzi:
użyj narzędzia wiersza poleceń SQLCMD, które znacznie zużywa mniej pamięci. To jest tak proste, jak:
SQLCMD -d <database-name> -i filename.sql
Potrzebujesz ważnych poświadczeń, aby uzyskać dostęp do instancji SQL Server, a nawet uzyskać dostęp do bazy danych
Zaczerpnięte stąd .
-e
dla zaufanego połączenia
To może ci pomóc! Zobacz poniższe kroki.
sqlcmd -S nazwa-serwera -d nazwa-bazy danych -i skrypt.sql
Możesz także po prostu zwiększyć wartość Minimalna ilość pamięci na zapytanie we właściwościach serwera. Aby edytować to ustawienie, kliknij prawym przyciskiem myszy nazwę serwera i wybierz Właściwości> karta Pamięć.
Napotkałem ten błąd podczas próby wykonania 30MB skryptu SQL w SSMS 2012. Po zwiększeniu wartości z 1024MB do 2048MB udało mi się uruchomić skrypt.
(To ta sama odpowiedź, którą tu podałem )
W przypadku uwierzytelniania systemu Windows użyj tego polecenia sql cmd
SQLCMD -S TestSQLServer\SQLEXPRESS -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
Uwaga: jeśli w ścieżce pliku sql jest spacja, użyj „(cudzysłowy)”
W przypadku uwierzytelniania programu SQL Server użyj tego polecenia sql cmd
SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
-S TestSQLServer \ SQLEXPRESS: Tutaj określ nazwę serwera SQL
-U sa: nazwa użytkownika (w przypadku uwierzytelniania SQL Server)
-P sasa: hasło (w przypadku uwierzytelniania SQL Server)
-d AdventureWorks2018: Nazwa bazy danych tutaj
-i "d: \ document \ sql document \ script.sql": Ścieżka do pliku SQLFile
Jeśli dobrze rozumiem Twój problem, próbujesz przywrócić (transakcyjny sql) xyz.sql - baza danych + schemat. Możesz wypróbować to polecenie, które zadziałało dla mnie:
SQLCMD -U sa -i xyz.sql
Moja baza danych była większa niż 500 MB, więc użyłem następującego
C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql
Załadował wszystko, w tym SP
* Uwaga: uruchom cmd jako administrator
Czasami, z powodu dużego rozmiaru skryptu i danych, napotykamy tego typu błąd. Serwer potrzebuje wystarczającej ilości pamięci, aby wykonać i podać wynik. Możemy po prostu zwiększyć rozmiar pamięci na zapytanie.
Wystarczy przejść do właściwości serwera sql> zakładka Pamięć (lewa strona)> Teraz ustaw maksymalny limit pamięci, który chcesz dodać.
Na górze znajduje się również opcja „Wyniki do tekstu”, która zajmuje mniej pamięci w porównaniu z opcją „Wyniki do siatki”, możemy również przejść do wyniku na tekst, aby zmniejszyć wykonanie pamięci.
Poniższy skrypt działa idealnie:
sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x
Objawy:
Podczas wykonywania skryptu odzyskiwania za pomocą narzędzia sqlcmd, komunikat „Sqlcmd: błąd: błąd składni w wierszu XYZ w pobliżu polecenia„ X ”w pliku„ nazwa_pliku.sql ”.” wystąpił błąd.
Przyczyna:
To jest ograniczenie narzędzia sqlcmd. Jeśli skrypt SQL zawiera znak dolara ($) w dowolnej formie, narzędzie nie może poprawnie wykonać skryptu, ponieważ domyślnie zastępuje wszystkie zmienne automatycznie.
Rozkład:
W celu wykonania skryptu ze znakiem dolara ($) w dowolnej postaci konieczne jest dodanie w linii poleceń parametru „-x”.
na przykład
Oryginał: sqlcmd -s nazwa_serwera -d nazwa_bazy_danych -E -ic: \ Temp \ Recovery_script.sql
Naprawiono: sqlcmd -s nazwa_serwera -d nazwa_bazy_danych -E -ic: \ Temp \ Recovery_script.sql -x
sqlcmd -S mamxxxxxmu \ sqlserverr -U sa -P x1123 -d QLDB -i D: \ qldbscript.sql
Otwórz wiersz polecenia w uruchom jako administrator
wprowadź powyższe polecenie
"mamxxxxxmu" to nazwa komputera "sqlserverr" to nazwa serwera "sa" to nazwa użytkownika serwera "x1123" to hasło serwera "QLDB" to nazwa bazy danych "D: \ qldbscript.sql" to plik skryptu sql do wykonania w bazie danych