Удалить все данные из базы данных SQL Server, затем повторно ввести данные из другой базы данных?

#sql-server

#sql-server

Вопрос:

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

Ответ №1:

Попробуйте это, чтобы удалить данные:

 -- disable all constraints
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"

-- delete data in all tables
EXEC sp_MSForEachTable "DELETE FROM ?"

-- enable all constraints
exec sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"
  

Для импорта данных:

  1. В Microsoft SQL Server Management Studio Express разверните базы данных.
  2. Щелкните правой кнопкой мыши базу данных, содержащую объекты, которые вы хотите скопировать в другую базу данных
  3. Нажмите на Задачи, затем создайте сценарии… Это откроет мастер сценариев, который в значительной степени не требует пояснений:
  4. Выберите базу данных (которая должна быть предварительно выбрана для вас),
  5. Выберите параметры (в первый раз вы можете просто принять параметры по умолчанию),
  6. Выберите типы объектов, которые вы хотите создать в скрипте (хранимые процедуры, пользовательские функции и т.д.),
  7. Выберите конкретные объекты, для которых будет создан сценарий, и, наконец, укажите, куда выводить сценарий (для удобства выберите Сценарий в новое окно запроса).

После завершения вернитесь в окно запроса с объектами сценария. Измените директиву USE (первая строка), чтобы она указывала на базу данных назначения (например, ИСПОЛЬЗУЙТЕ [Northwind]), и запустите сценарий.