gpt4 book ai didi

ssis - 从脚本任务执行 SSIS 包存储中的子包

转载 作者:行者123 更新时间:2023-12-01 22:23:07 43 4
gpt4 key购买 nike

我有一个父包需要多次执行同一个子包。为了让事情变得更有趣,每个实例都需要为传递给子包的父参数定义不同的值。

我使用以下脚本创建了一个脚本任务:

Microsoft.SqlServer.Dts.Runtime.Application App = new Microsoft.SqlServer.Dts.Runtime.Application();
Package pkg = new Package();

try
{
pkg = App.LoadPackage(@"\\server\SSIS Packages\ChildPackage.dtsx", null);
pkg.Variables["ChildVariableName"].Value = Dts.Variables["AParentVariableName"].Value;
pkg.Execute();

Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.Events.FireError(0, "Run child pkg for parent task", ex.Message, string.Empty, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}

问题是,我的包存储在 SQL 2008 R2 服务器的 SSIS 包存储中,我不知道如何引用它们;我见过的每个代码示例都是针对物理位置的。这是在 HA 集群上,因此很难维护该包的物理位置。

因此,我要么需要 (a) 弄清楚如何在每次为此子包启动执行包任务时更改 ParentVariable 的值,要么 (b) 弄清楚如何在 SSIS 包存储中引用正确的包,此时我可以安全地传递正确的值。大家有什么想法吗?

最佳答案

您可以使用 LoadFromSqlServer 而不是 App.LoadPackage 方法。方法

app.LoadFromSqlServer("\OptionalFolderButSlashRequired\ChildPackage", "server", null, null, null);

关于 Application 的文档和 Package通常在我需要使用的方法中都有示例。

关于ssis - 从脚本任务执行 SSIS 包存储中的子包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15832981/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com