0

したがって、全国の7つの異なるサーバー上の7つの異なるDBで実行されるジョブがあります。ジョブは、毎月または隔月でいつ実行する必要があるか、またはどの月の何日に実行する必要があるかなどを予測できないため、スケジュールされたジョブではありません。し、ジョブを手動で開始します。各ジョブには 7 つのステップがあり、各ステップで大量のデータが Excel ファイルにエクスポートされ、後で Excel データのみを受け入れる独自のソフトウェアにインポートされます。ちょっと面倒ですが、これは常に行われている方法です。ジョブの開始後に手順を変更することはできませんが、7 つの異なる VPN 接続と 7 つのサーバー ログインなどの最初のストレスを取り除くことで、作業を簡単にすることができます。

私は C#/.Net で単純な Web アプリを作成しました。これにより、ユーザーはどのサーバーを選択し、開始ボタンを押すことができ、コード ビハインドから SQL ジョブを何らかの方法で開始できます。このアプリは中央サーバーに配置できるため、個々の VPN ログオンや DB ログインは必要ありません。ユーザーがしなければならないことは、Web アプリにログインしてすべてを実行することだけです。サーバーにログオンし、C# からの直接アクセスを介してジョブを開始するコードを起動させた参考文献を見つけました。ただし、すべての許可の問題とその他のエラーの間で、これは恐ろしい方向性だと思います。各サーバーでジョブを起動するストアド プロシージャを実行できるというリファレンスをいくつか見つけました。

このタスクを達成するための最善の方法についてアドバイスを求めています。proc を記述して各サーバーにドロップし、Web アプリのドロップダウン リストで選択したサーバーに応じて、そのサーバーで proc を起動してジョブを開始することはできますか? それは十分に簡単に思えますし、アクセス許可の問題がほとんどなくても十分に機能します。

任意の提案をいただければ幸いです。

4

1 に答える 1

0

これが SQL サーバーであると仮定すると、探している構文は次のようになります。

EXEC [msdb].[dbo].[sp_start_job] '開始するジョブの名前'

ストアド プロシージャに対する実行権限があれば、他に何も必要ありません。
これを .net コードから実行するか、リンク サーバーを作成して、すべてのサーバーに対してこれを起動する手順を実行できます。この場合、コードはわずかに変更され、リンク サーバー名が含まれます。

EXEC [リンク サーバー名].[msdb].[dbo].[sp_start_job] '開始するジョブの名前'

于 2012-12-28T14:54:19.140 に答える