【发布时间】:2009-02-06 21:06:15
【问题描述】:
我有一个 SSIS 多播对象,它将我的流分成 2 条路径。
在第一个路径中,我将流插入另一个数据库。
在第二个路径中,我更新了流的行以显示它们已被插入。
我需要一种方法让一条路径等到另一条路径完成。 (所以我可以处理任何插入错误,而不是更新那些错误的行。)
感谢任何帮助。
【问题讨论】:
标签: sql-server ssis
我有一个 SSIS 多播对象,它将我的流分成 2 条路径。
在第一个路径中,我将流插入另一个数据库。
在第二个路径中,我更新了流的行以显示它们已被插入。
我需要一种方法让一条路径等到另一条路径完成。 (所以我可以处理任何插入错误,而不是更新那些错误的行。)
感谢任何帮助。
【问题讨论】:
标签: sql-server ssis
我对此进行了更多研究,这是我想出的答案:
在多播的每个输出上,我都进行了排序操作,然后使用 MergeJoin 操作将它们连接起来。之后,我使用 OLE DB 命令对没有来自 mergejoin 的错误值的项目执行 SQL 更新。
【讨论】:
你不能在 SSIS 中这样做。您只能在控制流级别强制执行优先约束(即强制执行运行顺序)。
【讨论】:
在这种情况下,我不会使用多播,而是使用常规数据流,这样在第一个成功完成之前不会启动
【讨论】:
最好的选择是实际使用脚本组件。从那里您可以管理使用 try catch 块按顺序执行插入和更新。
【讨论】: