Резервное копирование на уровне таблицы - PullRequest
90 голосов
/ 25 марта 2009

Как сделать резервную копию (дамп) на уровне таблицы в MS SQL Server 2005/2008?

Ответы [ 16 ]

87 голосов
/ 25 марта 2009

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

Что вы можете сделать, как вы предложили, это экспортировать данные таблицы в файл CSV. Теперь, чтобы получить определение вашей таблицы, вы можете «Сценарий» сценария CREATE TABLE.

Это можно сделать в SQL Server Management Studio следующим образом:

щелкните правой кнопкой мыши База данных> Задачи> Создать сценарий

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

чтобы получить DATA вместе с schema, вы должны выбрать Advanced на вкладке параметров сценариев, а в разделе GENERAL установить Types of data to script выбрать Schema and Data

Надеюсь, это поможет, но вы можете связаться со мной напрямую, если вам потребуется дополнительная помощь.

54 голосов
/ 16 ноября 2010

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

на экспорт:

bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E

для импорта:

bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

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

44 голосов
/ 16 сентября 2011

Вот шаги, которые вам нужны. Шаг 5 важен, если вы хотите получить данные. На шаге 2 вы можете выбрать отдельные таблицы.

РЕДАКТИРОВАТЬ версия стека не совсем читабельна ... вот полноразмерное изображение http://i.imgur.com/y6ZCL.jpg

Here are the steps from John Sansom's answer

19 голосов
/ 16 мая 2012

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

select * into newtablename from oldtablename

Чтобы скопировать только структуру таблицы, используйте следующий запрос.

select * into newtablename from oldtablename where 1 = 2
6 голосов
/ 05 мая 2014

Это похоже на решение qntmfred , но с использованием прямого дампа таблицы. Эта опция немного быстрее (см. Документы BCP ):

на экспорт:

bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E

для импорта:

bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
4 голосов
/ 10 апреля 2009

Если вы ищете что-то вроде DUMP MySQL, то хорошие новости: в SQL Server 2008 Management Studio добавлена ​​эта возможность.

В SSMS просто щелкните правой кнопкой мыши по рассматриваемой БД и выберите Задачи> Создать сценарии . Затем, на 2-й странице мастера опций, убедитесь, что выбрано, что вы хотите, чтобы data также было написано в сценарии , и он сгенерирует то, что для файла DUMP вы.

3 голосов
/ 26 марта 2009

Создайте новую файловую группу, поместите в нее эту таблицу и сделайте резервную копию только этой файловой группы.

2 голосов
/ 03 февраля 2015

Использование мастера импорта и экспорта SQL Server.

  1. SSMS
  2. Открыть ядро ​​базы данных
  3. Alt. щелкните базу данных, содержащую таблицу для экспорта
  4. Выберите "Задачи"
  5. Выберите «Экспорт данных ...»
  6. Следуй за волшебником
2 голосов
/ 01 октября 2012

Не знаю, будет ли это соответствовать описанной здесь проблеме. Я должен был взять инкрементное резервное копирование таблицы! (Только новые вставленные данные должны быть скопированы). Я использовал для разработки пакета DTS где.

  1. Я получаю новые записи (на основе столбца «статус») и перенес данные в пункт назначения. (Через «Задачу преобразования данных»)

  2. Тогда я только что обновил столбец «статус». (Через «Выполнение задачи SQL»)

Мне нужно было правильно исправить «рабочий процесс».

2 голосов
/ 25 марта 2009

Вы можете использовать бесплатный Мастер публикации баз данных от Microsoft для создания текстовых файлов с помощью скриптов SQL (CREATE TABLE и INSERT INTO).

Вы можете создать такой файл для одной таблицы и «восстановить» всю таблицу, включая данные, просто запустив сценарий SQL.

...