【问题标题】:How to Make SSIS Package Fail When There's No Row没有行时如何使 SSIS 包失败
【发布时间】:2017-07-01 00:45:10
【问题描述】:

我有一个非常简单的 SQL Data Flow Task 包,它执行查询并删除结果。

当查询没有结果时,有没有办法让我的包失败?我尝试添加Execute SQL Task 以获得结果计数,但我不确定当结果计数 = 0 时如何使其失败。

【问题讨论】:

    标签: sql sql-server ssis etl


    【解决方案1】:

    一些像这样的 SQL 应该这样做:

    DECLARE @CNT INT;
    SELECT @CNT = COUNT(*) FROM Table;
    IF @CNT = 0 RAISERROR('Error',17,1);
    

    【讨论】:

      【解决方案2】:

      您可以使用脚本任务来实现:

      1. 使用Execute SQL Task 将结果计数存储在包变量中
      2. 添加脚本任务以检查变量值,如果值为零则失败

      首先你必须将变量添加到脚本ReadOnly Variables

      假设变量名是@[User::Variable]

          Public Sub Main()
      
              If Dts.Variables.Item("User::Variable").Value = 0 Then
      
                  Dts.TaskResult = ScriptResults.Failure
              Else
                  Dts.TaskResult = ScriptResults.Success
      
              End If
      
      
          End Sub    
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-30
        • 2016-08-20
        • 2015-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多