У мене є файл 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
Ви також можете просто збільшити мінімальну пам'ять на значення запиту у властивостях сервера. Щоб відредагувати це налаштування, клацніть правою кнопкою миші на назві сервера та виберіть «Властивості»> вкладка «Пам'ять».
Я зіткнувся з цією помилкою, намагаючись виконати сценарій SQL на 30 Мб у SSMS 2012. Після збільшення значення з 1024 МБ до 2048 Мб я зміг запустити сценарій.
(Це та сама відповідь, яку я дав тут )
Для автентифікації Windows використовуйте цей cmd cmd
SQLCMD -S TestSQLServer\SQLEXPRESS -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
Примітка: Якщо в шляху до файлу sql є пробіл, використовуйте "(Лапки)"
Для автентифікації SQL Server використовуйте цей cmd 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)
-d AdventureWorks2018: Ім'я бази даних сюди
-i "d: \ document \ sql document \ script.sql": Шлях до файлу SQLFile
Якщо я правильно зрозумів вашу проблему, ви намагаєтесь відновити (здійснити транзакцію sql) xyz.sql - база даних + схема. Ви можете спробувати цю команду, яка працювала для мене:
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: Помилка: Синтаксична помилка в рядку XYZ біля команди' X 'у файлі' file_name.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 для виконання в базі даних