Консолидация базы данных MSSQL в 1

Мне нужно объединить 20 баз данных с одинаковой структурой в одну базу данных. Я видел этот пост: https://stackoverflow.com/questions/2537986/consolidate-data-from-many-different-databases-into-one-with-minimum-latency

Я не понял всего этого, поэтому позвольте мне спросить так: Есть таблица, у которой есть первичные ключи, но нет sourceID, пример:

DataBase 1
AgencyID    Name 
1           Apple
2           Microsoft

Database 2
AgencyID   Name
1          HP
2          Microsoft

Очевидно, что эти две таблицы не могут быть объединены следующим образом, для этого нужен дополнительный столбец:

DataBase 1
Source     AgencyID    Name 
DB1        1           Apple
DB1        2           Microsoft

Database 2
Source     AgencyID   Name
DB2        1          HP
DB2        2          Microsoft

Если это правильный способ сделать это, можно ли объединить эти две таблицы в одну базу данных следующим образом:

Source     AgencyID    Name 
DB1        1           Apple
DB1        2           Microsoft
DB2        1           HP
DB2        2           Microsoft

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

Ilija

1 ответ

Решение

Я бы на самом деле сделал консолидацию с использованием SSIS. Мне кажется, это значительно упростит консолидацию. В консолидированной базе данных я бы сделал первичный ключ таблиц комбинацией исходного ключа и SourceID. Вы можете использовать Производный столбец в SSIS, чтобы заполнить SourceID, основываясь на том, из какой базы данных поступают данные. Это помогает?

Другие вопросы по тегам