Вы упомянули, что две базы данных находятся на одном компьютере, и что вы выяснили, как получить схему
(Я использую Tasks - Create Scripts
из контекстного меню, вызываемого правой кнопкой мыши в базе данных, и генерирую сценарии, выбирая отдельные таблицы и сохраняя их в новом окне запроса... тогда это так же просто, как использовать [new_db] поверх каждого созданного сценария, и объекты будут созданы в новой базе данных, где [new_db] — имя вашей новой базы данных.).
Поскольку таблицы имеют одинаковую структуру, для вставки данных после создания таблиц в новой БД используется оператор insert select
. Включите identity insert
, если есть (как и должно быть) автоматически сгенерированный столбец первичного ключа. Вставьте данные. Затем отключите identity insert
.
-- Note: Identity_Insert is required if there is an identity column present
-- Otherwise those two lines can be removed/commented out
Use [new_db]
Set IDENTITY_INSERT [table_name] On
Insert Into [table_name]
-- Note 2: Default schema is [dbo], but technically, it is [db].[schema].[table]
Select * From [old_db].[dbo].[table_name]
Set IDENTITY_INSERT [table_name] Off
Довольно прямолинейно в вашем случае, и нет необходимости делать резервную копию/восстанавливать базу данных. Если бы базы данных находились на отдельных несвязанных серверах, потребовалось бы резервное копирование/восстановление, чтобы получить старую и новую базы данных на одном компьютере... то, что у вас уже есть в вашем конкретном случае.
person
Dmitriy Khaykin
schedule
08.06.2016