2 个数据流任务链接到一个执行 SQL 任务

2 ssis

我有两个数据流任务,其中只有 1 个会执行。在执行其中任何一个之后,我想要执行一个执行 SQL 任务。当我从每个数据流任务进入执行 sql 任务时都显示绿色时,执行 sql 任务不会被执行。数据流任务成功完成,但执行从未进入执行 SQL 任务。一项任务只能有一个绿色箭头(成功)吗?谢谢

bil*_*nkc 6

默认情况下,两个任务受到成功约束的约束。也就是说,第一件事必须先生成成功值,然后第二件事才能获得启动信号。

您有一组二进制数据流任务输入到单个执行 SQL 任务中。执行 SQL 任务正在等待两者完成。这种情况不会发生,因此您必须更改约束。

执行此操作的简单方法是双击连接数据流和执行 SQL 的行(无论是哪一条),然后将优先级约束从“逻辑与”更改为“逻辑或”。如果任一数据流生成成功,则允许执行 SQL 任务运行。

在此输入图像描述

用于创建 Or 约束的 Biml 构造如下所示。我在 PrecedentConstraint 中指定 LogicalType 为Or

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <Packages>
        <Package Name="so_28463621">
            <Tasks>
                <Dataflow Name="DFT 1"></Dataflow>
                <Dataflow Name="DFT 2"></Dataflow>
                <Container Name="OneOrTwo">
                    <PrecedenceConstraints LogicalType="Or">
                        <Inputs>
                            <Input OutputPathName="DFT 1.Output"></Input>
                            <Input OutputPathName="DFT 2.Output"></Input>
                        </Inputs>
                    </PrecedenceConstraints>
                </Container>
            </Tasks>
        </Package>
    </Packages>
</Biml>
Run Code Online (Sandbox Code Playgroud)