根据If else条件在SSIS中有选择地执行Dataflow任务

时间:2016-11-04 13:32:58

标签: sql-server-2008 if-statement ssis dataflowtask

我想创建一个包含两个数据流任务的SSIS包。如果今天的日期是本月的开始日期,它应该执行一个数据流任务(实际上有一个月末报告),否则它应该执行另一个数据流任务(这是一个每周报告)。任何人都可以让我知道如何实现这一目标。

谢谢,

1 个答案:

答案 0 :(得分:0)

1。)在包范围内创建数据类型为boolean的变量。我在这个例子中命名为startDate

enter image description here

2。)创建一个包含两个先例约束的脚本任务。一个是月初的数据流任务,另一个是假的。 enter image description here

3。)编辑脚本任务并将startDate变量添加到ReadWriteVariables中。 enter image description here

4。)点击“编辑脚本”并在方法中插入以下内容(您可以取消注释消息框以确保它在执行包时正常工作)并且不要忘记保存:

DateTime value = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);

        if (DateTime.Today == value)
        {
            Dts.Variables["User::startDate"].Value = bool.Parse("True");
        }
            Dts.Variables["User::startDate"].Value = bool.Parse("False");

        //MessageBox.Show(Dts.Variables["User::startDate"].Value.ToString());

5。)之后,您所要做的就是编辑每个DFT的优先约束。 enter image description here enter image description here