我有一些存储在 SQL Server 中并通过 SQL 代理作业公开的 SSIS 包
我编写了一个组件,允许我为包含 SSIS 包的作业步骤动态构建正确的命令行,它允许我使用 /SET 命令覆盖包变量
不幸的是,在 SMO 中,我需要执行以下操作:
jobStep.Command = MyNewComandString;
jobStep.Alter();
parentJob.Start();
这种方法的问题是它需要我调用 .Alter() 以使新命令行生效,这会更新 SQL Server 代理上的 JobStep 定义。如果我不调用 Alter() 而只是调用 Start() 那么它不会生效
这显然是一个 PITA,因为现在我需要担心“恢复”原始命令行......有什么方法可以将自定义命令字符串传递给 JobStep,让它执行而无需调用 Alter() 从而成为负责恢复原来的命令行?
顺便说一句 xp_cmdshell 不是一个选项