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

时间:2015-10-21 19:52:34

标签: c# sql-server ssis sql-server-2012 smo

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

查看Job Step类,我找不到像在UI中那样设置步骤类型的方法: SQL Server Agent Job Step Type

我尝试将命令设置为现有作业在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包吗?

1 个答案:

答案 0 :(得分:1)

您正在寻找SubSytem。枚举值为listed here

Ssis - Specifies the SQL Server Integration Services subsystem.

具体来说,您需要Ssis。代码应大约是

jobStep.SubSystem = AgentSubSystem.Ssis;