将 mssql 数据库合并为 1

将 mssql 数据库合并为 1

我需要将 20 个具有相同结构的数据库合并为 1 个数据库。我看到了这篇文章: 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

...是否可以使用事务复制来实现?提前感谢您的回答,如果我能得到正确的答案,那将非常有帮助。

伊利亚

答案1

我实际上会使用 SSIS 进行合并。在我看来,这会使合并变得容易得多。在合并数据库中,我会将表的主键设为原始键和 SourceID 的组合。您可以使用 SSIS 中的派生列根据数据从哪个数据库导入来填充 SourceID。这有帮助吗?

相关内容