从暂存中移动记录时,有哪些选项可以合并?

时间:2012-04-20 19:42:27

标签: merge sql-server-2008-r2 etl

我的ETL当前情况如下:

  • 对于每对相同的表dbo.T和staging.T
    • 从staging.T中删除
    • 从远程Web服务中提取并加载到staging.T
    • 对于staging.T
    • 中的每一行
    • dbo.T有PK吗?
      • 是,更新
      • 不,插入

我主要怀疑的是围绕列列表的主要内容。

MERGE语句似乎是最好的选择,但它似乎没有能力更新整行。因此,我发现需要保留长列表:

Target.Column1 = Source.Column1, 
Target.Column1 = Source.Column1,
..., 
Target.ColumnN = Source.ColumnN

我发现这个code generating template有助于合并,但我非常好奇地知道我刚才描述的问题是否存在标准方法,或者更重要的是,我错过了大局的某些部分 - 即我的方法是错误的。

换句话说,如果一个专业的ETL开发人员这样做(假设他们会这样做)他们将如何去做呢?

我想我想要达到的目标是更改表格模式的可靠方法,而且不会出现更新所有列复制列表的错误过程。

更具体地说,这里是SSIS任务的屏幕截图以及我实现的前4个表的模式。

enter image description here

0 个答案:

没有答案