介绍

前一个章节我们对SSIS的优先约束做了初步了解,并且实验了MaxConcurrentExecutables 包属性的设置.

本文将测试“On Success”, “On Completion”, 和“On Failure”几种类型的优先约束.

约束评估

On Success

在此就不重复了,请看上篇文章

On Completion

右击优先约束,会显示配置选项:

图 5

点击 Completion, 优先约束的先会由绿色变为黑色:

图 6

当配置选项改为“On Completion”之后,只要Script Task 1 执行完毕,不管是成功还是失败. 条件约束都会执行 Script Task2 :

我们来测试下执行失败情况.

首先,我们来要制作一个错误.打开 Script Task 1 然后点“Edit Script” 按钮.  我们通过 Message Boxes的返回值来控制执行的成功或者失败.以下是VB代码:

Public Sub Main()
Dim sTaskName As String = Dts.Variables("TaskName").Value.ToString
Dim iResponse As Integer = MsgBox("Succeed " & _ sTaskName & "?", MsgBoxStyle.YesNo, sTaskName) If iResponse = MsgBoxResult.Yes Then
Dts.TaskResult = ScriptResults.Success
Else
Dts.TaskResult = ScriptResults.Failure
End If
End Sub

C# 代码(请叫我雷锋)

public void Main()
{
// TODO: Add your code here
string sTaskName = Dts.Variables["TaskName"].Value.ToString();
DialogResult iResponse = MessageBox.Show("Succeed" + sTaskName + "?", sTaskName, MessageBoxButtons.YesNo); if (iResponse == DialogResult.Yes) Dts.TaskResult = (int)ScriptResults.Success;
else
Dts.TaskResult = (int)ScriptResults.Failure;
}

Script Task 1执行后弹出的消息框我们选No,这时候任务一就执行’失败’,但是Script Task 2 还是执行了.

图 8

图 9

如果你一直跟着我的文章一步步坐过来,有可能你执行以后看到的类似 Script Task1 的执行信息而看不到图9的界面.之所以这样是因为我们之前直接拷贝了  Script Task 1 然后改名为Script Task 2. 有时候就会发生Task2 执行被拷贝的Task1的情况 . 虽然很少碰到,但是还会发生(这尼玛不是坑爹么..绝对是Bug) . 要解决这个问题.打开Script Task2 随意编辑一下在保存. SSDT就会’刷新’ . 然后执行就正常了. (我是直接关掉SSDT再开项目 o(╯□╰)o) .

现在让我们从新设置回“On Success”看看效果

再次测试 On Success

图 10

消息框我们选择”No” 按钮, Script Task2 不会继续执行.

图 11

On Failure

现在我们测试 On Failure :

图 13

执行包以后,消息框我们选择’NO’按钮. Script Task 2会继续执行. :

图 14

当我们选择 Yes的时候 Script Task2 就不执行了.

图 16

原文地址: http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/91651/

Resources: My_First_SSIS_Project_After_Step_7.zip

[译]Stairway to Integration Services Level 7 - SSIS 工作流管理中级的更多相关文章

  1. [译]Stairway to Integration Services Level 8 - SSIS 工作流管理高级

    介绍 在前两个章节我们,建立了一个新的SSIS包,简单的使用了一下scripting还有优先约束,并且测试了MaxConcurrentExecutables 属性.  同时实验了  “On Succe ...

  2. [译]Stairway to Integration Services Level 6 - SSIS 工作流管理基础

    简介 在之前的章节中,我们学习了增量载入数据. 本文中.我们通过优先约束(Precedence Constraints)来管理SSIS的工作流. 添加一个SSIS包 图 1 将新建的Package1. ...

  3. [译]Stairway to Integration Services Level 13 - SSIS 变量回顾

    介绍 在前一篇中我们组合了已经学过的事件冒泡 event bubbling, 日志记录 logging, 和父子模型 Parent-Child pattern 建立了自定义的SSIS包日志记录. 本文 ...

  4. [译]Stairway to Integration Services Level 15 – SSIS 参数回顾

    介绍 在本文中我们会研究SSIS变量姐妹: SSIS 变量. 我们会演示参数配置,通过包参数管理动态属性值,然后会演示SSIS包执行的时候参数怎么被配置的. SSIS Parameters 101 S ...

  5. [译]Stairway to Integration Services Level 16 – Flexible Source Locations (多文件导入)

    介绍 在本文中我们将利用SSIS参数,变量 以及 Foreach Loop Container 从多个源动态导入数据. 开始前我们先下载一些数据.WeatherData_Dec08_Apr09.zip ...

  6. [译]Stairway to Integration Services Level 12 - 高级日志配置

    介绍 本文中,我们将结合之前学习的时间冒泡,日志记录,以及复制模型.建立一个自定义的SSIS包日志模型. SSIS Task事件回顾    Reviewing SSIS Task Events 在做实 ...

  7. [译]Stairway to Integration Services Level 9 - Control Flow Task Errors

    介绍 在本文中,我们会实验 MaximumErrorCount和ForceExecutioResult 故障容差属性,并且还要学习Control Flow task errors, event han ...

  8. [译]Stairway to Integration Services Level 18 – 部署和执行

    介绍 在本文中,我们要创建一个SSIS Catalog 实例,部署我们的项目,并且运行 weather data loader 包. SSIS 2012 部署模型   SSIS 2012 Deploy ...

  9. [译]Stairway to Integration Services Level 11 - 日志配置

    介绍 在前一个章节我们讨论了事先行为,分享了如何操作默认的行为和时间冒泡,并且介绍了父子模型. 本文中,我们会配置SSIS日志. 进行简单及高级日志配置,存储,和检索的实验.并且生成自定义日志信息. ...

随机推荐

  1. 关于strcpy的实现.

    #include <stdio.h> #include <stdlib.h> int strlen(const char *str) { ; while(*str++!='\0 ...

  2. linux下如何查看系统和内核版本

        1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompile@cro ...

  3. Android开发中如何解决加载大图片时内存溢出的问题

    Android开发中如何解决加载大图片时内存溢出的问题    在Android开发过程中,我们经常会遇到加载的图片过大导致内存溢出的问题,其实类似这样的问题已经屡见不鲜了,下面将一些好的解决方案分享给 ...

  4. no protocol specified

    基于vncserver安装oracle or oracle RAC时 以root账号运行xhost + 在切换到grid or oracle安装oracle database file or clus ...

  5. 动态链接库 DLL

    动态链接库DLL 不使用时不会有任何作用,只有在其他模块调用动态链接库中的函数时,它才发挥作用. 一.静态库与动态库 1.静态库 函数和数据被编译进一个二进制文件(.LIB),编译时,会将其组合起来创 ...

  6. OC中使用 static 、 extern、 const使用

    static static用于定义静态变量,静态变量只会被初始化一次,并且直到程序销毁时才会释放 static NSString *str = @"asdfa"; const co ...

  7. asp.net 分页的制作

    /// <summary> /// 数据分页方法 /// </summary> /// <param name="PageIndex">当前页& ...

  8. 两种写法实现Session Scope的Spring Bean

    xml based: <bean id="localRepository" class="com.demo.bean.LocalRepository" s ...

  9. HDU2005-第几天

    描述: 给定一个日期,输出这个日期是该年的第几天. 代码: #include<stdio.h> #include<string.h> #include<iostream& ...

  10. HDU 3729 二分匹配 反向匹配

    题意: 给定 n个学生 说的 自己 考试排名的 可能范围 确定最多几个人说真话 如果有多种答案,输出字典序最大的那种( 要求字典序最大,所以solve中从最大字典序开始匹配) 思路: 题目给定  点 ...