在 C# 中以编程方式创建 SQL 代理作业 运行 SSIS 包

Programmatically create SQL Agent Job running SSIS package in C#

我有一个 SSIS 包,用于在 SQL 服务器代理作业中将数据从一个数据库简单地传输到同一服务器上的另一个数据库。我希望能够随时为不同的数据库创建多个作业,因此我正在尝试创建一个 C# 程序来创建作业。

查看 Job Step class 我找不到像 UI 中那样设置步骤类型的方法:

我已尝试将命令设置为与现有作业相同的形式,用于调用 SSIS 目录中的 SSIS 包:

JobStep jobStep = new JobStep(job, "Transfer");
jobStep.Command = @"/ISSERVER ""\SSISDB\ABC\ABC\Transfer.dtsx"" /SERVER FRISCHE /Par ""DestinationConnectionOLEDB_InitialCatalog"";""Dest_Test"" /Par ""SourceConnectionOLEDB_InitialCatalog"";""Src_Test"" /Par ""$ServerOption::LOGGING_LEVEL(Int16)"";1 /Par ""$ServerOption::SYNCHRONIZED(Boolean)"";True /CALLERINFO SQLAGENT /REPORTING E";

但是这创建的步骤始终默认为 Transact-SQL 脚本选项。有什么方法可以告诉 JobStep 对象我想要一种 SSIS 包?

您正在寻找 SubSytem. The Enum values are listed here

Ssis - Specifies the SQL Server Integration Services subsystem.

具体来说,您想要 Ssis。代码应该大约

jobStep.SubSystem = AgentSubSystem.Ssis;