介绍

前一个章节我们对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

最新文章

  1. strcmp()&&mb_ereg_replace()&&ereg()
  2. js如何判断一个数组
  3. nc 反弹链接
  4. typedef 与define 的区别
  5. winform模拟鼠标按键
  6. tomcat配置多实例
  7. java-bootstrap
  8. HDU5983Pocket Cube
  9. 深入MySQL复制(二):基于GTID复制
  10. mysql执行update报错 Err] 1055 - 'information_schema.PROFILING.SEQ' isn't in GROUP BY
  11. "Login failed for user 'NT AUTHORITY\SYSTEM'. 原因: 无法打开明确指定的数据库。"异常处理
  12. Magento 2数据库EAV模型结构
  13. spring boot 使用war包部署
  14. LoRa---官方例程移植
  15. 解决Pycharm添加虚拟解释器的报错问题
  16. delphi文件操作的总结
  17. python高性能编程方法一-乾颐堂
  18. Eclipse免reload设置
  19. 微信小程序之注释出现的问题(.json不能注释)
  20. POJ3682 King Arthur's Birthday Celebration

热门文章

  1. java简易编辑器
  2. PHP上传图片
  3. SublimeLinter
  4. 用1个 2个3个 5个div实现 十字架
  5. 派生类地址比基类地址少4(子类与基类指针强行转换的时候,值居然会发生变化,不知道Delphi BCB是不是也这样) good
  6. 在CI框架下执行存储的方法
  7. 狼追兔子问题C模拟解
  8. border-radius 知识点
  9. Mac下搭建SVN服务器
  10. slf4j+log4j配置(Maven)