同じ子パッケージを複数回実行する必要がある親パッケージがあります。より面白くするために、各インスタンスは、子パッケージに渡される親パラメーターに対して定義された異なる値を持つ必要があります。
次のスクリプトを使用してスクリプト タスクを作成しました。
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 パッケージ ストア内の適切なパッケージを参照する方法を理解する必要があります。ポイント適切な値を安全に渡すことができます。誰にもアイデアはありますか?