首页 > 解决方案 > 从 C# 代码将 SSIS 包作为 SQLAgent 作业执行,并将参数传递给 SSIS 包

问题描述

我需要将一个参数传递给 SSIS 包,该包是从 SQLAgent 作业执行的。该作业由 C# 代码触发。我无法在互联网上得到明确的答案。可能吗?

SQLServer 版本:2012

从 C# 开始,我使用以下代码开始工作。

exec msdb..sp_start_job @job_name='Upload_Job'

标签: c#.netsql-serverssisssis-2012

解决方案


SQL 代理作业是静态的 - 要执行的操作的定义在作业/作业步骤创建时指定。

如果您需要将参数传递给作业,SQL 代理不支持此功能。

如果您有一组有限的参数要传递:更新人力资源、负载财务、增量处理、满载 - 然后为每个场景创建一个作业并完成它。

如果无法绑定参数,则在 SQL Agent 中创建一次性作业。这使您可以指定运行所需的确切参数,而不必担心对配置表的并发访问。采用这条路线而不只是运行 SSISDB 过程本身的原因通常涉及需要指定代理用户/凭据。


推荐阅读