Подтвердить что ты не робот

Ошибка при запуске 50 МБ script на SQL Server 2008 R2

Я использую SQL Server 2008 R2, у меня есть script для обновления БД, что script приблизительно 50 МБ и содержит около 800 000 строк.

Ошибка:

TITLE: Студия управления Microsoft SQL Server

Не удается выполнить script.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Недостаточно памяти для продолжения выполнения программы. (Mscorlib)

Может кто-нибудь помочь мне запустить этот script, не получив эту ошибку?

4b9b3361

Ответ 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
  • В проводнике объектов щелкните правой кнопкой мыши имя базы данных и выберите "Свойства"
  • В разделе "Файл" измените размер "Размер" и "Размер журнала" на неограниченный размер.