如何在没有行时使 SSIS 包失败



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

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

像这样的SQL应该这样做:

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

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

  1. 使用Execute SQL Task将结果 Count 存储在包变量中
  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    

最新更新