Назад | Перейти на главную страницу

Объединить базы данных 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

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

Илия

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