Как переместить таблицы из одной базы данных сервера sql в другую?

У нас есть база данных, которая выросла до 50 ГБ, и мы хотим извлечь определенный набор таблиц (около 20 из них) из этой базы данных и переместить их в новую базу данных. , Все это будет на одном сервере SQL. Таблицы, которые мы хотим извлечь, занимают около 12 ГБ пространства (данные 6 ГБ, индексы 6 ГБ).

Как мы можем переместить таблицы из одной базы данных во вторую, но убедиться, что таблицы, созданные в новой базе данных, являются точной копией оригиналов (индексов, ключей и т. Д.)? В идеале я хочу, чтобы копирование / вставка выполнялась в среде SQL Server Management Studio, но я знаю, что этого не существует, поэтому какие у меня есть варианты?

12
задан Jeff Widmer 26 August 2010 в 19:26
поделиться

4 ответа

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

EDIT

Как я упоминал в своих комментариях ниже, если вам действительно нужна новая база данных, в зависимости от общего количества задействованных таблиц может быть проще восстановить резервную копию базы данных под новым именем и удалить столы, которые вам не нужны.

7
ответ дан 2 December 2019 в 03:53
поделиться

Я также нашел это потенциальное решение с помощью SQL Server Management Studio. Вы можете создать сценарии для определенных таблиц для перемещения, а затем экспортировать данные с помощью мастера создания сценариев и мастера импорта/экспорта в SQL Server Management Studio. Затем в новой базе данных вы запустите сценарии для создания всех объектов, а затем импортируете данные.Вероятно, мы собираемся использовать метод резервного копирования/восстановления, как описано в ответе @Joe Stefanelli, но я нашел этот метод и хотел опубликовать его, чтобы другие могли его увидеть.

Чтобы сгенерировать сценарий sql для объектов:

  • SQL Server Management Studio > Базы данных > База данных1 > Задачи > Создать сценарии...
  • Запустится мастер сценариев SQL Server, и вы сможете выбрать объекты и параметры для экспортировать в скрипты
    • По умолчанию сценарии индексов и триггеров не включены, поэтому обязательно запустите их (и любые другие, которые вас интересуют).

Чтобы экспортировать данные из таблиц:

  • SQL Server Management Studio > Базы данных > База данных1 > Задачи > Экспорт данных...
  • Выберите исходную и целевую базы данных
  • Выберите таблицы для экспорта
    • Обязательно установите флажок «Вставка удостоверений» для каждой таблицы, чтобы не создавать новые удостоверения.

Затем создайте новую базу данных, запустите сценарии для создания всех объектов, а затем импортируйте данные.

2
ответ дан 2 December 2019 в 03:53
поделиться

Если вам нравятся службы SSIS или они у вас есть, вы можете исследовать это с помощью компонента «Задача копирования объектов SQL».

1
ответ дан 2 December 2019 в 03:53
поделиться
SELECT *
INTO new_table_name [IN new database]
FROM old_tablename
0
ответ дан 2 December 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: