SQL Serverに保存され、SQLエージェントジョブを介して公開されるSSISパッケージがいくつかあります
/SETコマンドを使用してパッケージ変数をオーバーライドできるSSISパッケージを含むジョブステップの正しいコマンドラインを動的に構築できるコンポーネントを作成しました。
残念ながら、SMOでは、次のことを行う必要があります。
jobStep.Command = MyNewComandString;
jobStep.Alter();
parentJob.Start();
このアプローチの問題は、新しいコマンドラインを有効にするために.Alter()を呼び出す必要があることです。これにより、SQLServerエージェントのJobStep定義が更新されます。Alter()を呼び出さず、Start()を呼び出すだけでは、有効になりません。
これは明らかにPITAです。元のコマンドラインを「復元」することを心配する必要があるからです...カスタムコマンド文字列をJobStepに渡して、Alter()を呼び出さずに実行できる方法はありますか?元のコマンドラインを復元する責任がありますか?
ところでxp_cmdshellはオプションではありません