0

我知道如何从这个create-sql-server-job-automatically创建一个工作

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

背景 我有一系列 SSIS 作业,我需要一个测试仪来运行。我在创建一个网页以调用位于 DB 服务器上的 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),测试人员可以选择一个包,运行它并查看内部日志我们记录的包运行。

4

2 回答 2

3

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

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

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

于 2012-04-02T16:07:19.277 回答
0

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

如果由于任何原因无法做到这一点,那么我认为您必须准确解释您有哪些限制以及原因(可能在一个新问题中)。运行包通常很容易,但似乎你没有完全自由的手来实现你想要的。

于 2012-04-03T08:14:14.183 回答