Копирование данных из одной базы данных в другой код SQL - PullRequest
2 голосов
/ 13 апреля 2011

Я ищу помощи;Ситуация такова, что у меня есть 2 базы данных, которые должны быть идентичными по структуре, за исключением того, что NEW prod dbs имеет идентичные столбцы, определенные ограничения PK и fk.Я должен объединить 4 немного разных БД в одну «TempDB», а затем скопировать данные в «NewProddb».

Я управлял сценарием, чтобы отключить проверки FK и включить проверки FK, поэтому вставка должна выглядеть примерно так:

[Скрипт для отключения всех ограничений FK (nocheck)]

SET IDENTITY_INSERT [NewProdDB].[dbo].[Event] ON; 
INSERT INTO [dbo].[Event] 
(EventID, Name, StartDate, EndDate, PartnerRegStartDate, PartnerRegEndDate, HouseholdRegStartDate, HouseholdRegEndDate, ChannelId, HasTeam, MaxteamMembers) 

(Select 
EventID, Name, StartDate, EndDate, PartnerRegStartDate, PartnerRegEndDate, HouseholdRegStartDate, HouseholdRegEndDate, ChannelId, HasTeam, MaxteamMembers
From TempDB.dbo.Event);

SET IDENTITY_INSERT [NewProdDb].dbo.[Event] OFF; 

[Скрипт для включения всех ограничений FK (проверка)]

Я хочу сделать это за один раз, а не писать скрипт для ВСЕХ таблиц отдельно.Все данные во всех столбцах должны быть скопированы.

Надеюсь, это понятно.

Заранее спасибо.

1 Ответ

0 голосов
/ 13 апреля 2011

Я постараюсь ответить в терминах базы данных Oracle, вы можете найти эквиваленты в MSSQL.

Существуют системные таблицы, в которых хранится информация о таблицах и столбцах.Таким образом, ваш сценарий может выполнять следующие действия:

  1. Передавать исходную схему и целевую схему
  2. Загружать таблицы и соответствующие столбцы с объединением ALL_TABLES & ALL_TAB_COLUMNS для исходной схемы.Циклические результаты и генерировать ваши сценарии вставки.Вы можете записать его в файл sql и затем выполнить.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...