SSIS - 5.优先约束

    一、优先约束和执行逻辑

  任务和容器是SSIS中的可执行文件,一个优先约束连接着两个可执行文件:优先的可执行文件和约束的可执行文件,如下图。

  SSIS Precedence Constraint Definition

  它的执行逻辑如下图:

  1)先执行优先可执行文件

  2)判断优先约束的结果是否为真

  3)若为真,则执行约束可执行文件,否则结束进程

  SSIS Precedence Constraint Running Sequence

  二、优先约束的设置

  优先约束的判断结果取决于优先的可执行文件执行时的返回结果是否与优先约束的设置或表达式结果相匹配。一个可执行文件的执行结果可以是成功或者失败。优先的可执行文件可以选择3种执行结果:成功、失败和完成。下面是优先约束的设置及对应的优先可执行文件执行的返回结果。

  

       三、下面实际操作一下

        1)创建并打开一个SSIS的空白包,定义变量V,数据类型为int32,默认值为1。

   2)拖拽一个脚本任务到设计区域,重命名为“Source”,然后渎复制这个脚本任务并重命名为“Destination”,然后使用优先约束连接,如下图。

  SSIS Precedence Constraint Example

  3)执行包,可以看到执行成功了。

  SSIS Precedence Constraint Example Result

  4)单击“停止调试”按钮关闭执行,打开脚本任务“Source”和“Destination”后可以看到里面的代码。

 

SSIS Script Task Default Code

  5)修改脚本任务“Source”中95行的代码如下。

    Dts.TaskResult = (int)ScriptResults.Failure;

  6)再执行包,可以看到执行错误。这是以为“Source”返回的是“失败”,而优先约束定义的是执行成功后继续,这样,包执行完“Source”任务后就会停止执行。

  SSIS Script Task Returns Failure

  7)在绿色的线上右键,然后“失败”。

  Change Precedence Constraint to Failure

  8)再次执行包,可以看到“Destination”任务执行成功了,这是因为“Source”返回的失败与优先约束中的设置匹配。

  Precedence Constraint is set to Failure and result

  9)上图红色的箭头线上右键->选择“编辑...”->打开优先约束编辑器。

  在约束选项中,计算操作中包含一下4种:

    • 约束
    • 表达式
    • 表达式和约束
    • 表达式或约束

  SSIS Precedence Constraint Editor

  10)选择“表达式和约束”->单击表达式右侧的“...”打开表达式编辑器->写入表达式"@[User::V]==1"后单击OK。

  SSIS Expression and Constraint Example

  11)执行包,"Destination"执行成功。这是由于表达式和约束返回的都是True。图中“fx”表达优先约束中包含有表达式。  SSIS Expression and Constraint Result

  12)右键红色的线->选择“Success”->将变量V的值改为2,执行包,“Destination”没有执行,因为表达式@[User::V]==1返回的结果是False。

  Change Precedence Constraint to Failure

  13)打开优先约束编辑器->修改约束条件为“表达式或约束”。

  SSIS Expression or Constraint

  14)再次执行包,可以看到“Destination”执行成功了,因为约束和表达式是“或”的关系(True || False = True)

 

转载于:https://www.cnblogs.com/MR-zhang-01/p/9290589.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 目标与需求 需要将现有的SQL Server数据库系统升级到PostgreSQL,以满足系统性能、安全性和稳定性的要求,同时保证数据的完整性和一致性。 2. 方案设计 (1)技术现状 当前系统存在以下痛点: - SQL Server的授权成本较高 - 数据库扩展性差,不支持分布式部署 - 不支持跨平台操作 - 缺乏对JSON数据类型的支持 - 性能不够高效 (2)升级方案的技术特点与优势 - PostgreSQL是一种成熟的开源数据库管理系统,具有高可扩展性和高安全性,成本更低 - 支持跨平台操作,可以在多种操作系统上运行,支持分布式部署,满足系统扩展性需求 - 支持JSON数据类型,可以更好地应对现代Web应用的数据需求 - 具有更好的性能表现,可以更快地响应请求,提高系统的性能 (3)架构设计 在升级过程中,需要考虑具体模块架构如何与II期整体功能兼容。建议采用分步骤升级的方式,先对数据库进行升级,然后逐步修改应用程序以适应新的数据库。具体步骤如下: - 数据库升级:将SQL Server中的数据导出并转换为PostgreSQL兼容格式,然后导入到PostgreSQL中。可以使用第三方工具如DTS、SSIS、pgloader等进行数据迁移。 - 应用程序适配:根据新的数据库类型修改应用程序,确保能够正确地连接和操作PostgreSQL数据库。需要注意修改SQL语句和调整API接口等相关操作。 - 系统测试:进行系统测试,确保所有功能和数据都能正常运行和访问。 - 上线发布:将修改后的应用程序发布到生产环境中,保证系统能够稳定运行。 (4)技术路线和流程 具体的技术路线和流程如下: - 数据库升级: - 分析数据库结构,确定需要迁移的数据和表结构; - 使用工具将SQL Server数据转换为PostgreSQL兼容格式; - 导入数据到PostgreSQL中; - 针对新的数据库做好备份和恢复方案。 - 应用程序适配: - 分析应用程序,确定需要修改的SQL语句和API接口; - 修改SQL语句,确保能够正确地连接和操作PostgreSQL数据库; - 修改API接口,确保能够正确地调用新的数据库; - 编译和测试应用程序。 - 系统测试: - 进行单元测试、集成测试和验

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值