Ошибка при запуске 50 МБ script на SQL Server 2008 R2
Я использую SQL Server 2008 R2, у меня есть script для обновления БД, что script приблизительно
50 МБ и содержит около 800 000 строк.
Ошибка:
TITLE: Студия управления Microsoft SQL Server
Не удается выполнить script.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Недостаточно памяти для продолжения выполнения программы. (Mscorlib)
Может кто-нибудь помочь мне запустить этот script, не получив эту ошибку?
Ответы
Ответ 1
используйте инструмент командной строки SQLCMD, который намного более компактен в памяти. Это так же просто, как:
SQLCMD -d <database-name> -i filename.sql
Вам нужны действительные учетные данные для доступа к экземпляру SQL Server или даже для доступа к базе данных
Ответ 2
Добавляя к @user1293068 ответ, мне нужно было указать имя экземпляра. Вот мой полный синтаксис:
sqlcmd -S <ComputerName>\<InstanceName> -d <DatabaseName> -i <MyScript.sql>
Это описано в Technet Использование утилиты sqlcmd Utility.
(Обратите внимание, что вы должны ввести значение переключателя "-S", а не "-s". Переключатель чувствителен к регистру.)
Ответ 3
Вы также можете попытаться увеличить значение максимальной памяти сервера в свойствах сервера.
Чтобы отредактировать этот параметр, щелкните правой кнопкой мыши имя сервера и выберите" Свойства " > вкладка" Память".
Я столкнулся с этой ошибкой, пытающейся выполнить 30MB
SQL script в SSMS 2012.
После увеличения значения от 1024MB
до 2048MB
мне удалось запустить script.
Ответ 4
Если требуются учетные данные
sqlcmd -S <ComputerName>\<InstanceName> -U <username> -P <password> -d <DatabaseName> -i <MyScript.sql>
Ответ 5
Хорошо, ни один из ответов не был достаточным для успешного восстановления моего script.
Итак:
-
Убедитесь, что ваша сетевая учетная запись имеет достаточные разрешения для доступа к экземпляру SQL Server и к конкретной базе данных, которую вы собираетесь восстановить.
-
Лучше всего, чтобы база данных, которую вы намереваетесь восстановить, фактически существует, если она была просто сгенерирована из Generate Scripts (с изменениями, включающими как Schema, так и Data)
-
Запустите средство командной строки в режиме администратора (если необходимо), например, введите CMD из меню "Запуск" в меню "Пуск"
-
В инструменте командной строки введите что-то вроде "SQLCMD -d CMS -i C:\Carnotaurus\Data\script.sql"
. Здесь CMS
- это имя базы данных, которую я намереваюсь восстановить, а "C:\Carnotaurus\Data\script.sql"
- это полный путь к файлу восстановления script, который был сгенерирован сгенерированным скриптом в SMSS.
Надеюсь, это очистит несколько пропущенных шагов.
Ответ 6
Я также столкнулся с аналогичной проблемой в SQL Server 2012, так как мой размер файла был 70 МБ.
Решение, которое сработало для меня, Увеличьте лог файл до Unlimited.
- Откройте SQL Server Management Studio
- В проводнике объектов щелкните правой кнопкой мыши имя базы данных и выберите "Свойства"
- В разделе "Файл" измените размер "Размер" и "Размер журнала" на неограниченный размер.