我有一个非常简单的SQL Data Flow Task
包,可以执行查询并删除结果。
有没有办法在查询中没有结果时使我的包失败?我尝试添加Execute SQL Task
以获取结果计数,但我不确定当结果计数= 0时如何使其失败。
像这样的SQL应该这样做:
DECLARE @CNT INT;
SELECT @CNT = COUNT(*) FROM Table;
IF @CNT = 0 RAISERROR('Error',17,1);
您可以使用脚本任务来实现此目的:
- 使用
Execute SQL Task
将结果 Count 存储在包变量中 - 添加脚本任务以检查变量值,如果值等于零,则失败
首先,您必须将变量添加到脚本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