У меня есть файл sql размером 123 МБ, который мне нужно выполнить на моем локальном ПК. Но я получаю
Cannot execute script: Insufficient memory to continue the execution of the program
Как решить эту проблему?
У меня есть файл sql размером 123 МБ, который мне нужно выполнить на моем локальном ПК. Но я получаю
Cannot execute script: Insufficient memory to continue the execution of the program
Как решить эту проблему?
Ответы:
используйте инструмент командной строки SQLCMD, который намного меньше использует память. Это очень просто:
SQLCMD -d <database-name> -i filename.sql
Вам нужны действительные учетные данные для доступа к вашему экземпляру SQL Server или даже для доступа к базе данных.
Взято отсюда .
-e
для доверенного соединения
Это может вам помочь! См. Шаги ниже.
sqlcmd -S имя-сервера -d имя-базы данных -i script.sql
Вы также можете просто увеличить значение Minimum memory per query в свойствах сервера. Чтобы изменить этот параметр, щелкните правой кнопкой мыши имя сервера и выберите «Свойства»> «Память».
Я столкнулся с этой ошибкой при попытке выполнить сценарий SQL размером 30 МБ в SSMS 2012. После увеличения значения с 1024 МБ до 2048 МБ я смог запустить сценарий.
(Это тот же ответ, который я дал здесь )
Для проверки подлинности 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
-U sa: имя пользователя (в случае аутентификации SQL Server)
-P sasa: Пароль (в случае аутентификации SQL Server)
-d AdventureWorks2018: имя базы данных иди сюда
-i "d: \ document \ sql document \ script.sql": путь к файлу SQLFile
Если я правильно понимаю вашу проблему, вы пытаетесь восстановить (транзакцию sql) xyz.sql - database + schema. Вы можете попробовать эту команду, которая сработала для меня:
SQLCMD -U sa -i xyz.sql
Моя база данных была больше 500 МБ, затем я использовал следующие
C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql
Он загрузил все, включая SP
* NB: запустите cmd от имени администратора
Иногда из-за большого размера скрипта и данных мы сталкиваемся с этим типом ошибки. Серверу требуется достаточно памяти для выполнения и выдачи результата. Мы можем просто увеличить размер памяти для каждого запроса.
Вам просто нужно перейти в свойства сервера sql> вкладка Память (слева)> Теперь установите максимальный предел памяти, который вы хотите добавить.
Кроме того, вверху есть опция «Результаты в текст», которая потребляет меньше памяти по сравнению с опцией «Результаты в сетку», мы также можем выбрать Результат в текст для меньшего объема памяти.
Ниже скрипт работает отлично:
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 -ic: \ Temp \ Recovery_script.sql
Исправлено: sqlcmd -s Имя_сервера -d Имя_базы_данных -E -ic: \ Temp \ Recovery_script.sql -x
sqlcmd -S mamxxxxxmu \ sqlserverr -U sa -P x1123 -d QLDB -i D: \ qldbscript.sql
Открыть командную строку при запуске от имени администратора
введите команду выше
mamxxxxxmu - имя компьютера, sqlserverr - имя сервера, sa - имя пользователя сервера, x1123 - пароль сервера, QLDB - имя базы данных, - D: \ qldbscript.sql - файл скрипта sql для выполнения в базе данных