我正在尝试从脚本任务中停止包执行。根据{{3}},只有RunningPackage.Stop();
才能正常工作,但我收到错误“非静态字段,方法或属性Microsoft.SqlServer.Dts.Runtime.RunningPackage需要对象引用。以这种方式停止()“:
public void Main()
{
RunningPackage.Stop(); // Object reference error.
}
所以我尝试了以下内容:
public void Main()
{
RunningPackage package = new RunningPackage();
package.Stop();
}
这样我就没有将带下划线的代码作为错误,但是在保存编辑过的脚本时,SSIS说“包中包含的脚本有编译错误”。 using Microsoft.SqlServer.Dts.Runtime;
已导入。
有什么问题?有没有其他方法可以在C#中完全停止当前包而不会出错?
答案 0 :(得分:1)
在我看来,我看到一个控制流, N 任务相关联,一些并行,一些串行。 X 事件发生了,现在我们需要停下来,有点优雅。
可能是您在每个可执行文件'Disabled
属性上设置一个Expression,该属性绑定到名为PleaseStop
的包级别布尔变量。它的默认值是False,但是当X发生时,它变为True,然后使一切都被禁用。
这不会阻止飞行中的东西,但它会阻止任何新的东西开始。