sql-server - 如何在 SSIS 中进行条件分支

标签 sql-server ssis

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

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

谢谢!

最佳答案

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

  • 创建一个包范围变量@FoundMyTable,如果表存在,则该变量将保存值 1,如果表不存在,则保存值 0
  • 通过名为 LookForMyTable 的执行 SQL 任务设置 @FoundMyTable 的值,该任务使用选择语句和 INFORMATION_SCHEMA.TABLES 返回表计数
    SELECT COUNT(1)AS table_count
      FROM INFORMATION_SCHEMA.TABLES t
      WHERE t.TABLE_NAME = 'MyTable';
    
  • 创建两个执行 SQL 任务:TruncateMyTable 和 CreateMyTable
  • 将 LookForMyTable 连接到 TruncateMyTable 和 CreateMyTable
  • 双击 LookForMyTable 和 TruncateMyTable 之间的优先约束 >
    表达式和约束 > @FoundMyTable == 1
  • 双击 LookForMyTable 和 CreateMyTable 之间的优先约束 >
    表达式和约束 > @FoundMyTable == 0
  • 关于sql-server - 如何在 SSIS 中进行条件分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20692591/

    相关文章:

    azure - 将 csv 文件批量插入 Azure

    c# - 使用SSRS和SSIS自动化Excel输出c#

    sql-server - 在通过 SSIS 生成的 CSV 文件中显示日期为 "December 17,2014"

    c# - 从脚本创建数据库时关键字 'USE' 错误附近的语法不正确

    sql-server - sql 根据条件选择最小值或最大值

    sql - SQL 中的字符串连接不起作用

    html - SQL Server HTML 正文电子邮件格式不正确(已添加 XML)

    sql-server - 使用 SELECT 结果中的字段从 INSERT...SELECT 查询输出字段

    sql-server - SSIS连接管理器问题

    sql-server - 使用 SSIS 将数据从具有动态列名称的 Excel 移动到表