如何在SSIS中进行条件分支

Gre*_*fey 2 sql-server ssis

我想根据条件在SSIS中执行任务.具体来说,我想创建一个表或清除它(截断它),具体取决于它是否已经存在.

目前我正在使用SQL任务,SQL在哪里工作,但我想知道是否有更好的方法......

谢谢!

Jon*_*ssi 5

通过向优先约束添加表达式,这在技术上是可行的.点击此处查看详细信息.基本步骤是......

  1. 创建一个包作用域变量@FoundMyTable,如果表存在则保持值为1,如果表不存在则保持0

  2. 通过名为LookForMyTable的执行SQL任务设置@FoundMyTable的值,该任务使用select语句和INFORMATION_SCHEMA.TABLES返回表计数

    SELECT COUNT(1)AS table_count
      FROM INFORMATION_SCHEMA.TABLES t
      WHERE t.TABLE_NAME = 'MyTable';
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建两个执行SQL任务:TruncateMyTable和CreateMyTable

  4. 将LookForMyTable连接到TruncateMyTable和CreateMyTable

  5. 双击LookForMyTable和TruncateMyTable> Expression and Constraint> @FoundMyTable == 1之间的优先约束

  6. 双击LookForMyTable和CreateMyTable> Expression and Constraint> @FoundMyTable == 0之间的优先约束