2009-12-22 2 views
1

Недавно мне была назначена задача обновления «старой» базы данных (ранее управляемой бывшим сотрудником, который недавно покинул компанию). Новая база данных имеет ту же структуру, что и предыдущая; единственное различие заключается в самом содержании, так как эта база данных теперь имеет более свежие данные.SQL Server 2008: воссоздание одних и тех же индексов и статистики в разных базах данных

Проблема в том, что в старой базе данных имеется множество индексов и статистических данных, которые я также должен реализовать в новой базе данных, и я боюсь, что скрипты создания базы данных были потеряны где-то вдоль шоссе.

Следовательно, как я могу (предпочтительно используя Transact SQL) воссоздать старые индексы в новой базе данных?

Приветствия ребята

ответ

1

В SSMS вы можете щелкнуть правой кнопкой на индекс в обозревателе объектов и нажмите кнопку «Script Index As». Затем вы можете запустить скрипт против новой базы данных.

EDIT:

Если у вас есть несколько индексов, вы не можете сценарий их все в SSMS 2005 очень легко. Вы можете посмотреть сценарий, подобный этому: http://www.sqlservercentral.com/scripts/Miscellaneous/31893/

Другим интересным способом может быть использование C#, см. Пример http://blogs.msdn.com/benjones/archive/2008/08/27/how-can-i-generate-a-t-sql-script-for-just-the-indexes.aspx.

+0

Действительно я могу, но число индексов и статистики довольно велико; делать так было бы больно –

+0

Работает отлично, спасибо! –

1

попробуйте выполнить следующие действия

  • Щелкните правой кнопкой мыши на базе данных и выберите Задачи, затем Генерация сценариев ...
  • Выберите базу данных снова нажмите кнопку Далее (Примечание: Вы можете просто использовать галочку внизу внизу и списать все объекты в БД и закончить - сэкономьте некоторое время!)
  • Перетащите бар вниз, пока не дойдете до таблицы/View Options
  • Убедитесь, что индексы сценариев установлен в Правда, затем нажмите кнопку Далее
  • Выберите нужные объекты в сценарии, а затем нажмите кнопку Далее
  • Выберите элементы для сценария
  • Наконец выбрать, если вы хотите, чтобы скрипт в файл/буфер/окно запроса
+0

Я просто смотрел на это, предлагая это ему. Единственное, что я не мог получить ни одной комбинации свойств для создания индексов. Вы должны включить инструкцию Table Create, и, как я понимаю, таблица уже существует ... – MrEdmundo

+0

Также отлично работает, плюс это, вероятно, должно быть сделано таким образом. Жаль, что он наступил поздно.Еще раз спасибо –

3

Я хотел бы посмотреть на инвестиции в инструменты Red Gate, который будет делать это легко (индексы, данные и объекты могут быть синхронизированы) ,

Если вам действительно нужна точная статистика по обеим базам данных, это трудно сделать, особенно если вы не обновляете статистику вручную. Я просто волнуюсь о том, что Red Gate может синхронизировать в первую очередь.

+0

Спасибо за подсказку! –

Смежные вопросы