如何在SSIS中进行条件分支

时间:2013-12-19 22:04:59

标签: sql-server ssis

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

目前我正在使用SQL任务,其中SQL可以完成工作,但我想知道是否有更好的方法......

谢谢!

1 个答案:

答案 0 :(得分:5)

通过向优先约束添加表达式,这在技术上是可行的。 Click here for the details。基本步骤是......

  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';
    
  3. 创建两个执行SQL任务:TruncateMyTable和CreateMyTable

  4. 将LookForMyTable连接到TruncateMyTable和CreateMyTable

  5. 双击LookForMyTable和TruncateMyTable&gt;之间的优先约束。 <表达和约束> @FoundMyTable == 1

  6. 双击LookForMyTable和CreateMyTable&gt;之间的优先约束 <表达和约束> @FoundMyTable == 0