Не удается выполнить сценарий: недостаточно памяти для продолжения выполнения программы

У меня есть файл sql 123MB, который мне нужно выполнить на моем локальном ПК. Но я получаю

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

enter image description here

Как решить эту проблему?

11 ответов


используйте инструмент командной строки SQLCMD, который намного меньше памяти. Это так же просто, как:

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

вам нужны действительные учетные данные для доступа к экземпляру SQL Server или даже для доступа к базе данных

принято от здесь.


Это может помочь вам! См. ниже шаги.

sqlcmd-s server-name-D база данных-name-I скрипт.в SQL

  • открыть cmd.exe как администратор.
  • создать каталог документов.
  • поместите файл сценария SQL (script.SQL) в папке "Документы".
  • введите запрос с помощью sqlcmd, server-name, database-name и script-file-name, как показано выше выделенного запроса или ниже командной строки экран.

enter image description here


вы также можете просто увеличить минимальную память на значение запроса в свойствах сервера. Чтобы изменить этот параметр, щелкните правой кнопкой мыши на имени сервера и выберите свойства > вкладка память.

Я столкнулся с этой ошибкой, пытаясь выполнить сценарий SQL 30MB в SSMS 2012. После увеличения значения с 1024MB до 2048MB я смог запустить скрипт.

(Это тот же ответ, который я предоставил здесь)


Если я правильно понимаю вашу проблему, вы пытаетесь восстановить (transact sql) xyz.sql-база данных + схема. Вы можете попробовать эту команду, которая работала на меня:

SQLCMD -U sa -i xyz.sql

для проверки подлинности Windows используйте этот SQL cmd

SQLCMD -S TestSQLServer\SQLEXPRESS  -d AdventureWorks2018 -i "d:\document\sql document\script.sql"

Примечание: если в пути к файлу sql есть пробел, используйте " (кавычки)"

для проверки подлинности SQL Server используйте этот SQL cmd

SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa  -d AdventureWorks2018 -i "d:\document\sql document\script.sql"

- S TestSQLServer\SQLEXPRESS: здесь Укажите имя SQL Server

- U sa: имя Пользователя (в случае проверки подлинности SQL Server)

- P sasa: Пароль (в случае проверки подлинности SQL Server)

-д AdventureWorks2018: имя базы данных сюда

- i "d:\document\sql document\script.sql": путь к файлу SQLFile


иногда, из-за большого размера скрипта и данных, мы сталкиваемся с этим типом ошибки. Серверу требуется достаточная память для выполнения и получения результата. Мы можем просто увеличить объем памяти для каждого запроса.

вам просто нужно перейти на вкладку Свойства sql server > память (слева)> Теперь установите максимальное ограничение памяти, которое вы хотите добавить.

кроме того, в верхней части есть опция "результаты в текст", которая потребляет меньше памяти по сравнению с опцией "результаты в сетку", мы также можно перейти к результату в текст для меньшего выполнения памяти.


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

  • Откройте командную строку в run as administrator

  • введите вышеуказанную команду

"mamxxxxxmu" - это имя компьютера "sqlserverr" - имя сервера "sa" - имя пользователя сервера "x1123" - пароль сервера "QLDB" - имя базы данных "D:\qldbscript.sql " - это файл сценария sql для выполнения в база данных


повторите этот шаг,

1) Откройте PowerShell

2)Напишите эту команду:

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

3) Нажмите Return

: -)

enter image description here


Если вам нужно подключиться к LocalDB во время разработки, вы можете использовать:

sqlcmd -S "(localdb)\MSSQLLocalDB" -d dbname -i file.sql

скачать SQL Server Management Studio 17.6 и попробуйте запустить скрипт. Скачать ссылку https://go.microsoft.com/fwlink/?linkid=870039 У меня получилось. У меня был файл 214 MB.


ниже скрипт прекрасно работает:

sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x

симптомы:

при выполнении сценария восстановления с помощью утилиты sqlcmd, "sqlcmd: ошибка: синтаксическая ошибка в строке XYZ рядом с командой" X "в файле" имя_файла.язык SQL.’’ ошибка.

причина:

это ограничение утилиты sqlcmd. Если сценарий SQL содержит знак доллара ($) в любой форме, утилита не может правильно выполнить сценарий, так как он автоматическая замена всех переменных по умолчанию.

:

для выполнения скрипта, имеющего знак доллара ( $ ) в любой форме, необходимо добавить в командную строку параметр "-x".

например

Оригинал: sqlcmd-S Имя_сервера - D Имя_базы_данных-E-i c:\Temp\Recovery_script - ... в SQL

исправлено: sqlcmd-S Имя_сервера - D Имя_базы_данных-E-i c:\Temp\Recovery_script.sql-x