如何在Integration Services中手动使程序包失败?

Bri*_*ton 15 ssis

我在我的SSIS包中运行了一个Execute SQL Task语句.执行SQL任务正在运行sql并检查表是否有超过1000行.如果它们的行数少于1000行,我想让包失败.

如何在SQL语句中强制失败?

Har*_*lby 20

AFAIK,SSIS中的任务因错误而失败.因此,如果您的执行SQL任务有一个类似的语句:

declare @count int
select @count = select count(*) from my_table
if @count < 1000
begin
    raiserror('Too few rows in my_table',16,1)
end
else
begin
    -- Process your table here
end
Run Code Online (Sandbox Code Playgroud)

你应该得到你想要的结果.

  • raiserror('my_table中的行数太少,16,1)这就是诀窍!我想这不是一个SSIS问题而是更多的SQL问题.谢谢. (3认同)

小智 13

我喜欢使用脚本任务强制失败.这真的很容易.

1)添加脚本任务

2)更改自动生成代码的行:

Dts.TaskResult = (int)ScriptResults.Success; 
Run Code Online (Sandbox Code Playgroud)

Dts.TaskResult = (int)ScriptResults.Failure;
Run Code Online (Sandbox Code Playgroud)

你去吧!