如何在没有行的情况下使SSIS包失败

时间:2017-07-01 00:45:11

标签: sql sql-server ssis etl

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

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

2 个答案:

答案 0 :(得分:1)

像这样的SQL应该这样做:

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

答案 1 :(得分:0)

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

  1. 使用Execute SQL Task将结果Count存储在包变量
  2. 添加脚本任务以检查变量值,如果值等于零则失败
  3. 首先,您必须将变量添加到脚本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