2014-02-19 23 views
11

У нас есть база данных SQL Server 2012 с тестовыми данными, которые мы использовали для разработки веб-сайта. Вскоре нам нужно будет очистить базу данных и импортировать реальные данные, но мы много раз меняли дизайн базы данных во время веб-разработки, поэтому мы не можем использовать пустую копию, которую мы создали с самого начала!База данных SQL Server 2012 без данных

Есть ли способ скопировать базу данных без данных, но со всем остальным (включая представления, функции SP, объекты безопасности и т. Д.) И сбросить все индексы до значения начального значения дизайна? Другими словами, мы хотели бы сохранить базу данных точно так, как она есть, но удалить все данные, сбросить все индексы таблиц до их первоначальных значений семян проекта и затем импортировать данные.

Любая помощь с благодарностью получил

ответ

7

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

+0

Мы используем главным образом VS для работы с базой данных, и мы не очень хорошо знакомы с использованием сценариев. Я бы предпочел использовать UI-метод в VS или SQL. – YAOWSC

+0

Все, что вам нужно сделать, это выполнить сгенерированный скрипт через студию управления SQL Server. – Mentor

+0

Я искал и пробовал сценарий в студии управления SQL, но я все еще не могу понять, как это сделать сгенерировать скрипт, который будет копировать структуру базы данных (включая индексы, отношения и т. д.), но без данных.Я также не знаю, как запустить скрипт. Могу ли я превалировать над вами, чтобы предоставить немного больше помощи? Кажется удивительным, что я не могу финансировать простую хранимую процедуру или аналогичный метод создания пустой копии базы данных! – YAOWSC

0

Да! есть несколько способов сделать это. Вы можете попытаться скопировать базу данных, сбросить FKs, обрезать таблицы и воссоздать FK (есть SP, чтобы автоматизировать процесс усечения FK/воссоздать FK, если вы можете его искать.)

Вы можете просто щелкнуть правой кнопкой мыши в MS и попытайтесь сгенерировать весь сценарий создания БД (проверьте, выполнила ли он работу до 100%)

и самый надежный способ: с помощью VS создать новую пустую БД и использовать инструмент сравнения схем для создания скрипта diff.

+0

Теперь я использовал метод копирования для создания точной копии, а затем удалил все данные. Как я могу теперь установить индексы обратно в значение «семя» проекта, не удаляя и воссоздавая все индексы и отношения? – YAOWSC

+0

В методе «копирования» усечение плохое. Проблема заключается в том, что вы должны сбросить/воссоздать FK в правильном порядке. Я использую его, когда хочу сохранить большую часть данных и просто «очистить» несколько таблиц. – jean

+0

Извините - я на самом деле имел в виду, что использовал методы резервного копирования и восстановления для копирования базы данных. Однако падение и повторное создание всех индексов FK и т. Д. Было бы большой работой. Я взглянул на страницу продукта Redgate, но не ясно, что вы можете использовать ее для копирования базы данных без данных! Неужели кто-то, должно быть, создал простой способ сделать это? – YAOWSC

26
  1. Щелкните правой кнопкой мыши вашу базу данных на своем сервере и выберите Tasks > Generate Scripts.
  2. На шаге «Введение» нажмите «Далее».
  3. В разделе «Выбрать объекты» вы можете выбрать либо всю базу данных (включая функции, и т. Д.), Либо указать, какие объекты вы хотите создать. В вашем случае вы должны выбрать Script entire databases and all database objects и нажать «Далее».
  4. Выберите имя файла и место назначения выберите следующий
  5. Обзор, а затем нажмите кнопку Далее
  6. Готово!

Вы увидите файл .sql, сгенерированный в указанной папке. Вы можете открыть этот файл на других серверах и нажать «выполнить», тогда он будет генерировать точно такую ​​же базу данных.

0

Существует еще один способ, который занимает немного больше времени, но имеет свои преимущества. При использовании опции «Создать скрипты», как предлагали другие, мы получаем весь скрипт базы данных и таблиц в текстовом файле «.sql».

Другой подход заключается в том, чтобы восстановить существующую базу данных в новый db. Затем вы можете удалить все данные в таблицах, используя специальный скрипт для циклического преобразования таблиц. Теперь у вас есть копия базы данных без каких-либо данных. Сделайте резервную копию этого, чтобы получить знакомый файл «.bak».

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