0

このcreate-sql-server-job-automaticallyから動的にジョブを作成する方法を知っています

この手法で私が抱えている問題は、私が作成したこれらすべてのジョブを削除するためにクリーンアップが必要であることです

背景 テスターを実行する必要がある一連の SSIS ジョブがあります。DB サーバー上にある WCF サービスを呼び出してパッケージを実行する Web ページの作成に失敗しました。xp_cmdshell が使えません。したがって、3 番目のオプションは、SQL ジョブを介してパッケージを呼び出すことでした。理想的にはパッケージごとに 1 つのジョブを作成できますが、パッケージ名、構成ファイル、およびおそらくいくつかの動的変数を渡すことができる 1 つのジョブが必要です。

この投稿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 ジョブなしでこれを処理するより良い方法がある場合、私はその可能性を受け入れますが、主な目標は、テスターがパッケージを選択して実行し、内部ログを確認できるフォーム (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

ここで2つの質問を混同しているようですが、実際の優先順位はパッケージの実行であるように思われるので、dtexecまたはdtexecuiを使用してみませんか?テスターはそれらをテストスクリプトに簡単に組み込むことができ、それはジョブを使用するよりも簡単な解決策のようです。

何らかの理由でこれが不可能な場合は、どのような制限があり、その理由を正確に説明する必要があると思います(おそらく新しい質問で)。パッケージの実行は通常非常に簡単ですが、必要なものを実装するための完全なフリーハンドがないようです。

于 2012-04-03T08:14:14.183 に答える