1

クライアントのすべてのシステムで SQL Server ジョブを呼び出すアプリケーションを作成しています。

私はそれを実行することができ、完了するまで待ちます。ただし、保存場所がジョブにハードコードされている出力ファイルがあり、これはすべてのクライアントで同じ場所ではありません。

ジョブはシステム上でこの 1 つの値を除いたものと同じであるため、コードでジョブのスクリプトを読み取り、場所を解析する必要があります。

ジョブ自体の実際のテキストを取得する方法がわかりません。

これは .NET で可能ですか? もしそうなら、どのように?

4

2 に答える 2

3

次のクエリを使用して、ジョブの内容を取得できます。

SELECT [command]
FROM msdb.dbo.sysjobs job JOIN msdb.dbo.sysjobsteps steps
ON job.job_id = steps.job_id 
WHERE [name] = 'YourJobName'

そこから、VB.NETでレコードセットを作成し、上記のクエリを使用します。

于 2010-09-24T16:17:01.063 に答える
2

@LittleBobbyTables には正しいクエリがあります。 ただし、不明な点がある場合や、システムが何かを格納する場所については、SSMS がオブジェクトを作成するために生成するスクリプトを参照してください。この場合、ジョブ SSMS はいくつかのシステム ストアド プロシージャを呼び出します。SSMS のシステム ストアド プロシージャ コードを見て、どこに配置されているかを確認できます。

msdb.dbo.sp_add_job
msdb.dbo.sp_add_jobSchedule
msdb.dbo.sp_add_jobStep
msdb.dbo.sp_add_jobStep_internal

msdbデータベースを選択し、、Programmability、の順に選択して、上記のリストを見つけます。それらを右クリックして「変更」すると、ソースコードが表示されます。変更を保存しないでください。Stored ProceduresSystem Stored Procedures

最終的にmsdb.dbo.sysjobsmsdb.dbo.sysjobs

于 2010-09-24T16:24:36.307 に答える