【发布时间】:2017-07-01 00:45:10
【问题描述】:
我有一个非常简单的 SQL Data Flow Task 包,它执行查询并删除结果。
当查询没有结果时,有没有办法让我的包失败?我尝试添加Execute SQL Task 以获得结果计数,但我不确定当结果计数 = 0 时如何使其失败。
【问题讨论】:
标签: sql sql-server ssis etl
我有一个非常简单的 SQL Data Flow Task 包,它执行查询并删除结果。
当查询没有结果时,有没有办法让我的包失败?我尝试添加Execute SQL Task 以获得结果计数,但我不确定当结果计数 = 0 时如何使其失败。
【问题讨论】:
标签: sql sql-server ssis etl
一些像这样的 SQL 应该这样做:
DECLARE @CNT INT;
SELECT @CNT = COUNT(*) FROM Table;
IF @CNT = 0 RAISERROR('Error',17,1);
【讨论】:
您可以使用脚本任务来实现:
Execute SQL Task 将结果计数存储在包变量中首先你必须将变量添加到脚本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
【讨论】: