我目前正在使用一个设计不良且管道缓慢的数据库,所以我决定复制数据库的一小部分(15 个表),并且只带入其中一些表,例如我只想带上具有特定属性的行ID。但这不是一次性的,我需要将添加到旧数据库中的所有内容每小时添加到新数据库中。我的研究把我带到了 SSIS,它可能有办法做到这一点,但我没有找到明确的例子来说明它是如何完成的,如果实际上它是可能的。提前致谢。
问问题
2615 次
1 回答
2
对的,这是可能的 。您可以通过 sql 代理安排您的 ssis 包按小时运行。
对于一个表,你可以将一个数据流任务拖到控制流上。在DFT内部,你需要放置一个oledb源组件,查找,数据转换(如果源表和目标表的类型不同)和Oledb目标。
oledb Source component
:创建一个字符串类型的变量,并在表达式中编写您的 sql 查询以根据 ID 获取数据。现在在源组件中使用此变量。
Lookup
:您需要选择您的源表,并从源表和目标表中组合主键列。它的作用类似于内部连接查询。组合两个表中的主键后,从源中选择您需要的列。
Oledb destination
:只需选择您的目标表并映射来自的列Lookup no matched output
。如果您需要更新源中的值,然后使用Lookup matched output
并将其连接到执行 SQL 任务并编写更新查询。
于 2012-07-25T17:12:01.513 回答