Не удается выполнить сценарий: недостаточно памяти для продолжения выполнения программы
У меня есть 123mb sql файл, который мне нужно выполнить на моем локальном ПК. Но я получаю
Cannot execute script: Insufficient memory to continue the execution of the program
Как решить эту проблему?
11 ответов:
используйте инструмент командной строки SQLCMD, который намного меньше по памяти. Это так же просто, как:
SQLCMD -d <database-name> -i filename.sql
вам нужны действительные учетные данные для доступа к экземпляру SQL Server или даже для доступа к базе данных
принято от здесь.
Это может помочь вам! Пожалуйста, смотрите ниже шаги.
sqlcmd-s server-name-d database-name-I скрипт.sql
- открыть cmd.exe как администратор.
- создать каталог документов.
- поместите файл сценария SQL (script.SQL) в папке "Документы".
- введите запрос с помощью sqlcmd, server-name, database-name и script-file-name, как показано выше выделенного запроса или ниже командной строки экран.
вы также можете просто увеличить минимальный объем памяти для каждого значения запроса в свойствах сервера. Чтобы изменить этот параметр, щелкните правой кнопкой мыши на имени сервера и выберите свойства > вкладка память.
Я столкнулся с этой ошибкой, пытаясь выполнить сценарий SQL 30 МБ в SSMS 2012. После увеличения значения с 1024 МБ до 2048 Мб я смог запустить скрипт.
(Это тот же ответ, который я дал здесь)
Если я правильно понимаю вашу проблему, вы пытаетесь восстановить (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: имя базы данных иди сюда
-Я "d:\document\sql документ\скрипт.sql": путь к файлу SQLFile
иногда, из-за большого размера скрипта и данных, мы сталкиваемся с этим типом ошибки. Серверу требуется достаточно памяти для выполнения и выдачи результата. Мы можем просто увеличить объем памяти, на запрос.
вам просто нужно перейти на вкладку Свойства sql server > память (левая сторона)> теперь установите максимальный предел памяти, который вы хотите добавить.
кроме того, в верхней части есть опция "результаты в текст", которая потребляет меньше памяти по сравнению с опцией "результаты в сетку", мы также можно перейти к результату в текст для меньшего объема памяти.
sqlcmd-S mamxxxxxmu\sqlserverr-U sa-P x1123-d QLDB-i D:\qldbscript.sql
Откройте командную строку в run as administrator
введите вышеуказанную команду
"mamxxxxxmu" - это имя компьютера "sqlserverr" - это имя сервера "СА" - это имя сервера "x1123" - это пароль сервера "QLDB" - это имя базы данных "D:\qldbscript.sql " - это файл сценария sql для выполнения в база данных
Если вам нужно подключиться к 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: Error: синтаксическая ошибка в строке 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