sql-server – 具有读/写变量的SSIS脚本任务不会在ScriptResults.Failure上停止

如果我没有将任何变量传递给脚本任务,我可以通过设置Dts.TaskResult使其失败或成功.但是当我传递一些读/写变量时,我不能让它失败(永远执行),但我仍然可以使它成功.

我错过了一些设置吗?请帮忙.

我正在使用Sql Server 2012(VS 2010 for BIDS).
脚本代码:

Dts.TaskResult = (int)ScriptResults.Failure;
return;

读/写变量传递:

User::FileName

最佳答案 哈迪,

非常感谢您的回复,非常感谢.

我在其他帖子中看到类似的锁定问题,尝试过并失败了.但是我以后能够自己理解根本原因并且我发布它以便为其他人节省时间:

我后来意识到,除了上面的脚本任务和readwrite变量之外,我还在整个包的错误处理事件中使用了ReadWrite变量.当在错误处理程序中使用SSIS包中使用的ReadWrite变量时,即使异常发生或Dts.TaskResult设置为失败,它也会使包失败.相反,它会以无限循环运行!很古怪,是吗?我希望Microsoft计划在Error处理程序中使用脚本任务的ReadWrite变量而不是无限执行时返回某种验证错误…

无论如何,我通过在脚本任务中不使用该ReadWrite变量并将其设置在错误处理程序使用的某些Expression任务中来解决了该问题.

点赞