2016-06-08 2 views
0

Надеюсь, вы все можете мне помочь в этой ситуации. Мой босс создал новую базу данных, и ему нужны несколько старых таблиц в новой базе данных. Мой вопрос: как перенести данные и схему из старой базы данных в новую базу данных, не удаляя таблицы в старой базе данных? Вот мои две базы данных: WTS-SQL-DEV = это старая база данных : WTS-Business = это новая база данныхПередача данных и схема из одной базы данных в другую по одной таблице за раз

Дополнительная информация от комментариев:

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

+0

О Im работает Microsoft SQL Server 2016 – kliebwatchtower

+1

Возьмите полную резервную копию старой БД.Скопируйте на новый компьютер. – jarlh

+0

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

ответ

0
  1. Возьмите резервную копию базы данных

enter image description here

enter image description here

  1. На новой машине восстановить базу данных

enter image description here

enter image description here

0

Вы упомянули о том, что 2 базы данных на той же машине, и что вы выяснили, как получить схему над

(я использую 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 

Pretty straight-forward в вашем случае, и нет необходимости в резервном копировании/восстановлении базы данных. Если базы данных были на отдельных, не связанных серверах, для восстановления старых и новых баз данных на одном компьютере требуется резервное копирование/восстановление ... то, что у вас уже есть в вашем конкретном случае.

+0

Использование [WTS-Business] Set IDENTITY_INSERT [DBO]. [WTS-Expense-RecurringCharges] На вставить в [DBO]. [WTS-Расход-RecurringCharges] SELECT * FROM [WTS-SQL-DEV]. [ДБО ] [WTS-Expense-RecurringCharges] Установить IDENTITY_INSERT [dbo]. [WTS-Expense-RecurringCharges] Off Msg 40515, уровень 15, состояние 1, строка 30 Ссылка на имя базы данных и/или сервера в разделе «WTS-SQL- DEV.dbo.WTS-Expense-RecurringCharges 'не поддерживается в этой версии SQL Server. Я попытался следовать вашему примеру, это то, что я вижу, когда я делаю excute – kliebwatchtower

+0

@kliebwatchtower Это, похоже, ограничение SQL 2016 («перекрестная транзакция базы данных», когда две базы данных находятся на одном экземпляре, не разрешены ... Я думаю, Ответ JiggsJedi может быть здесь. –

1

Два отличных ответа уже есть.

Другим вариантом является щелчок правой кнопкой мыши по базе данных, затем перейдите в «Задачи»> «Экспорт данных».

Запустится мастер импорта/экспорта. Вы можете определить исходные/целевые серверы/базы данных и объекты и скопировать все.

https://msdn.microsoft.com/en-us/library/ms140052.aspx

+0

Nice and easy :) –

+0

Я получил данные через импортера/экспортера. Это было легко. Есть ли простой способ включить все дополнительные вещи, такие как ограничения и т. Д.? – kliebwatchtower

+0

Возможно, потребуется сценарий. Щелкните правой кнопкой мыши DB> Tasks> Generate Scripts. В разделе «Параметры набора сценариев» нажмите «Дополнительно», а внизу вы можете включить скрипты ограничений/ключей/индексов/триггеров/и т. Д. – JiggsJedi

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