2013-07-29 17 views
53

Mam plik 123MB sql, który muszę wykonać na moim lokalnym komputerze. Ale jestem corazNie można wykonać skryptu: Za mało pamięci, aby kontynuować wykonywanie programu.

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

enter image description here

Jak rozwiązać ten problem?

+0

@marc_s Kiedy klikam Ctlr + E, natychmiast pokaże ten błąd – user960567

+1

Możliwy duplikat [Otrzymywanie błędu podczas uruchamiania skryptu 50 MB na SQL Server 2008 R2] (http://stackoverflow.com/questions/11307435/getting-error- while-running-50-mb-script-on-sql-server-2008-r2) –

Odpowiedz

74

użyć narzędzia wiersza poleceń SQLCMD, które jest znacznie mniejsze na pamięć. To jest tak proste, jak:

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

Trzeba poprawnych poświadczeń dostępu do instancji SQL Server lub nawet uzyskać dostęp do bazy danych pobranych od here

.

+2

Dosłowne od: http://stackoverflow.com/q/11307435/773702 – Josh

+0

@Josh: Dzięki za informacje, zapomniałem dodać –

+12

Z pełne poświadczenia, określając db i serwer: sqlcmd -S -U -P -d -i a4bike

4

Jeśli dobrze rozumiem Twój problem, próbujesz przywrócić (transakcja sql) xyz.sql - database + schema. Możesz wypróbować to polecenie, które zadziałało:

SQLCMD -U sa -i xyz.sql 
5

Możesz także po prostu zwiększyć wartość Maksymalna pamięć serwera we właściwościach serwera. Aby edytować to ustawienie, kliknij prawym przyciskiem myszy nazwę serwera i wybierz Właściwości> karta Pamięć.

Napotkano ten błąd podczas próby wykonania skryptu SQL 30MB w SSMS 2012. Po zwiększeniu wartości z 1024 MB do 2048 MB mogłem uruchomić skrypt.

(Jest to ta sama odpowiedź, pod warunkiem here)

+0

Świetna odpowiedź! Dzięki. –

15

To może Ci pomóc! Zobacz poniżej kroki.

sqlcmd -S serwer -d nazwa-bazy danych nazwa--i script.sql

  • Otwarte cmd.exe jako administrator.
  • Utwórz katalog dokumentów.
  • Umieść plik skryptu SQL (script.sql) w folderze dokumentów.
  • Wpisz zapytanie z parametrem sqlcmd, nazwa-serwera, nazwa-bazy-danych i nazwa-skryptu--pod nazwą podświetlonego zapytania lub poniżej ekranu wiersza poleceń.

enter image description here

+0

Możesz podać nazwę użytkownika -sa i hasło -123, sqlcmd -S viaserver -U sa -P 123 -d TelstraDeployed -i SQLQuery1.sql –

2

Czasami, ze względu na ciężki wielkości skryptu i danych, mamy do czynienia z tego typu błędów. Serwer wymaga wystarczającej ilości pamięci do wykonania i podania wyniku. Możemy po prostu zwiększyć rozmiar pamięci na zapytanie.

Wystarczy przejść do właściwości serwera sql> karta Pamięć (lewa strona)> Teraz ustaw maksymalny limit pamięci, który chcesz dodać.

Ponadto istnieje opcja u góry "Wyniki dla tekstu", które zużywają mniej pamięci w porównaniu z opcją "Wyniki dla siatki", możemy również wybrać Wynik dla tekstu dla mniejszej ilości pamięci.

0

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

  • Otwórz wiersz polecenia w Uruchom jako administrator

  • wprowadzić powyższe polecenie

"mamxxxxxmu" to nazwa komputera "sqlserverr" to nazwa serwera "sa" jest nazwa serwera "x1123" jest hasłem serwera "QLDB" jest nazwą bazy danych "D: \ qldbscript.sql" jest plikiem skryptu sql t O wykonać w bazie

0

Spróbuj tego kroku

1) Otwórz PowerShell

2) Wpisz polecenie:

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

3) Naciśnij klawisz Return

:-)

enter image description here

Powiązane problemy