Не удается выполнить сценарий: недостаточно памяти для продолжения выполнения программы
У меня есть файл sql 123MB, который мне нужно выполнить на моем локальном ПК. Но я получаю
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 база данных-name-I скрипт.в SQL
- открыть cmd.exe как администратор.
- создать каталог документов.
- поместите файл сценария SQL (script.SQL) в папке "Документы".
- введите запрос с помощью sqlcmd, server-name, database-name и script-file-name, как показано выше выделенного запроса или ниже командной строки экран.
вы также можете просто увеличить минимальную память на значение запроса в свойствах сервера. Чтобы изменить этот параметр, щелкните правой кнопкой мыши на имени сервера и выберите свойства > вкладка память.
Я столкнулся с этой ошибкой, пытаясь выполнить сценарий 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
: -)
Если вам нужно подключиться к 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