我创建了一个导入每月提取声明文件的 SSIS Pacakge。我有一个简单的数据流任务,平面文件到 OLEDB 目标,中间有一个派生列组件,用于生成主键(基于提取文件中 3 列的组合)。
如果可能的话,我想做的是让 SSIS 包仅根据主键导入全新的记录,以便如果正在导入的文件包含目标表中已经存在的(生成的)主键,然后我希望包删除表中的现有记录,然后从正在导入的当前文件中添加新记录。
我知道我可以通过有一个暂存表来加载文件,然后使用一些 sql 查询 (sp) 适当地删除记录并将记录添加到表中,但我正在尝试完成导入而不需要创建暂存表,因为我目前正在填充的表已经是一个临时表......
使用 SSIS 和仅 1 个目标表,我想要完成的工作是否可行,或者我需要创建一个额外的临时表?
正如 Kin 在上面的评论中提到的那样,可以使用回答我的问题的 SSIS 查找转换组件(他的评论中也提供了示例)来完成我试图做的事情。
虽然我将来肯定会使用这个组件,但在阅读 mskinner 的评论(和引用的博客)后,我决定使用更直接的 SQL 脚本方法来完成我需要的东西,该评论指出使用 Execute SQL 任务可能会是比在 SSIS 中使用 Lookup Transformation 组件来完成我想要完成的工作要快得多/高效得多。