【发布时间】:2012-07-17 01:23:12
【问题描述】:
尝试使用 SSIS 将特定场景中的数据从 excel 表插入 4 个表时,我有点迷失了。
我的 Excel 表的每一行都需要分成 3 个表格。然后需要将标识列值插入到第 4 个映射表中以保存关系。如何使用 SSIS 2008 有效地实现这一目标?
请注意,在下面的示例中,它固定 col4 和 5 进入第三个表。
这是数据示例
Excel
col1 col2 col3 col4 col5
a b c d 3
a x c y 5
表 1
PK col
1 a
2 a
表2
PK col1 col2
1 b c
2 x c
Table3
PK Col
1 d
2 3
3 y
4 5
Map_table
PK Table1_ID Table2_ID Table3_ID
1 1 1 1
2 1 1 2
2 2 2 3
2 2 2 4
即使只建议使用基于 SQL 的方法,我也很好,因为我没有任何授权只使用 SSIS。额外的挑战是,在表 2 中,如果存在相同的数据行,我想在映射表中使用该 ID,而不是插入重复的行!
【问题讨论】:
-
您真的需要基于 SSIS 的解决方案吗?看到这里,我觉得在将源 Excel 导入数据库后,使用 SQL 脚本可以更轻松地解决它。
-
@Josien 一切都可以用 SQL 脚本来实现,但是 SSIS 是一个很好的方式来了解你的数据流......他要求可以用 SQL 解决的东西,但也许这个包是更大图景的一部分。
-
不,SSIS 不是强制性的要求。我只需要一种可重复的方式将 excel 数据导入这些表中。我想也许 SSIS 会更好地满足这一需求。
-
我认为 Josien 的想法是正确的。 SSIS 可能非常有用,但我建议您按原样导入 Excel 文件,然后使用 sproc 剥离组件并在需要的地方插入它们。如果要成为更大流程的一部分,您可以将这两个步骤放在 SSIS 中。
标签: sql sql-server-2008 ssis