以编程方式更改SSIS中的变量范围

Changing variable scope in SSIS programatically

有没有办法以编程方式更改 SSIS 中的变量范围?

例如,这个变量将在包级别创建:

package.Variables.Add("sSourceObjectId", false, "User", 1);

但我需要在 OnError 范围内创建变量,因为系统变量 ErrorCode 在包级别不可见。

您需要访问特定 Task/Container

上的变量集合

以下代码创建一个 SSIS 包,该包在包级别具有 OnError 事件处理程序。在该事件处理程序 eh 上,我添加了变量 sSourceObjectId

string path = @"C:\ssisdata\p1.dtsx";

Application app = new Application();
Package pkg = new Package();
pkg.Name = "so_29925774";
DtsEventHandler eh = pkg.EventHandlers.Add("OnError") as DtsEventHandler;

eh.Variables.Add("sSourceObjectId", false, "User", 1);

app.SaveToXml(path, pkg, null);

生成的包

您可以看到该变量的作用域是 OnError 事件,而不是包本身。