动态更改Sql作业

时间:2012-04-02 15:24:52

标签: sql-server ssis sql-job

我知道如何从create-sql-server-job-automatically

动态创建作业

我对此技术的问题是需要清理才能删除我创建的所有这些作业 我正在寻找的是一种将参数传递给作业或动态更改作业步骤的方法

背景 我有一系列需要测试人员运行的SSIS工作。我在创建一个网页时被击落,以调用位于数据库服务器上的WCF服务来执行包。我不能使用xp_cmdshell。所以第三个选项是通过sql作业调用包。现在,虽然我可以为每个包创建一个作业,但我希望能找到一个可以传递包名,配置文件和一些动态变量的作业。

查看此帖子Calling SSIS Package from Stored Procedure in SQL Server 2008 我可以看到我是如何创建动态包的,同样关注的是清理工作。

约束 我在动态创建作业的道路上的原因是以下约束

The testers do not have Sql installed on there machine so they do not have access
to the BIDS environment nor DTEXEC

For reasons not completely logical I am restricted from using c# and building a 
WCF service that would call the package through code

I can not use xp_cmdshell due to permission and security issues.

现在如果有一个更好的方法来处理这个没有Sql Jobs我可以接受这种可能性,但主要目标是创建一个表单(web或windows),测试人员可以选择一个包,运行它并查看内部我们记录的包运行日志。

2 个答案:

答案 0 :(得分:3)

对于初学者,我提出了一个关于如何解决你所链接问题的“清洁”版本。从那里开始,这只是一小步:sp_add_job您可以在其中找到@delete_level的解释

Value Description
----- -----------
0     Never
1     On success
2     On failure
3     Always

简而言之,如果您希望自己清理工作,请根据需要使用@delete_level 1或3。

答案 1 :(得分:0)

您似乎在这里混淆了两个问题,但由于您的真正优先级似乎是执行包,为什么不使用dtexec or dtexecui?您的测试人员可以轻松地将它们构建到测试脚本中,这似乎比使用作业更容易。

如果出于任何原因这是不可能的,那么我认为你必须准确解释你有什么限制和原因(可能在一个新问题中)。运行包通常很容易,但似乎没有完全自由的手来实现你想要的东西。