【发布时间】:2011-02-20 16:17:15
【问题描述】:
我有一个包含三个字段的表,一个是身份字段,我需要从具有其他两个字段的源添加一些新记录。我正在使用 SSIS,我认为我应该使用合并工具,因为其中一个源不在本地数据库中。但是,我对合并工具和正确的流程感到困惑。
我有我的一个来源(一个 Oracle 表),我得到两个字段,well_id 和 well_name,后面有一个排序,按 well_id 排序。我有目标表(sql server),我也用它作为源。它有三个字段:well_key(身份字段)、well_id 和well_name,然后我有一个排序任务,对well_id 进行排序。这两个都是我的合并任务的输入。我打算输出到一个临时表,然后以某种方式将新记录返回到 sql server 表中。
Oracle Well SQL Well
| |
V V
Sort Source Sort Well
| |
-------> Merge* <-----------
|
V
Temp well table
但是,我怀疑这不是使用此工具的最佳方式。这种合并的正确步骤是什么?
我质疑这个方法的一个原因是我的merge有错误,告诉我“Merge Input 2”必须排序,但是它的来源是排序任务,所以是排序的。
示例数据
SQL Well (before merge)
well_key well_id well_name
1 123 well k
2 292 well c
3 344 well t
5 439 well d
Oracle Well
well_id well_name
123 well k
292 well c
311 well y
344 well t
439 well d
532 well j
SQL Well (after merge)
well_key well_id well_name
1 123 well k
2 292 well c
3 344 well t
5 439 well d
6 311 well y
7 532 well j
将我的 Oracle Well 加载到一个临时的本地文件中,然后在其上使用 sql 插入语句会更好吗?
【问题讨论】:
标签: sql-server sql-server-2008 ssis merge