1

我在不同的服务器(B 和 C)中有 2 个同名的数据库(A)。两个数据库具有相同的架构。(sql server 2008 r2)

任务 1:将两个数据库复制(传输)到名称为(A_B 和 A_C)的第三个服务器(D)中。

任务 2:将两个数据库合并为一个数据库(A_D)。(我不知道我将如何处理密钥)

任务 3:每天我必须从服务器 B 和 C 获取数据并放入集中式服务器 D。

任何帮助,将不胜感激。

谢谢。

里特什

4

2 回答 2

0

这里有一些想法:

任务 1:通过对服务器 D 进行备份和还原来传输数据库。

任务 2:我认为这将涉及 ETL 过程和在数据库 A_D 中创建新的代理键。将原始来源的密钥保存在数据源 id 列中。我认为MERGE声明会有所帮助。

任务 3:利用任务 2 中的逻辑

任务 2 的更新:

假设Table1数据库 A 和 B 中的源有一个名为 的键列Table1_ID。在数据库 A_D 中添加列Table1_SourceIDTable1_Source. 使用来自源数据库的键填充Table1_SourceID,并用于Table1_Source指示源数据库。

Table1_ID用作 的键,并且对数据库A_DTable1是唯一的。这将解释源数据库中关键列的冲突。此外,您可以跟踪源数据库的行。

于 2013-07-30T19:34:18.827 回答
0

任务 1:创建没有结构的目标数据库。我会export在 SSMS 中使用带有创建结构选项的源数据库上的任务 -> 函数。导出后,您将在目的地获得准确的副本。

任务2:在每个表中A_D创建一个新的键列(SurKey)。它必须是在整个表中给出唯一值的值的组合。例如源表abbreviation + PK column + date

对于每个表,在 SSIS 包中创建两个数据流,它们将从A_B和加载数据A_C。放一个Derived Column组件,这将添加一个新列 - SurKey。

A_BDataFlow 中,将 theA_B作为缩写,A_C放在第二个中。

任务 3:使用您创建的数据流。在 SSMS 中编写作业脚本,将其添加到每日计划中。

于 2013-07-31T07:36:10.793 回答