ストアドプロシージャを使用して別のサーバーからジョブを実行するにはどうすればよいですか?
まあ言ってみれば
これはどのようにしてこの作業を行うことができるかで失われた部分です。
xp_cmdshell + osql command -U: -P: + sp_startjob
リンクサーバー を使用すると、xp_cmdshell
よりもはるかに信頼性と安全性が高くなります。
EXEC Server2.msdb.dbo.sp_start_job @job_name = N'Job2';
サーバーBのストアドプロシージャにSQLジョブを含めることができます。サーバーBをリンクサーバーとしてサーバーAに追加し、サーバーAからストアドプロシージャを実行します。
EXEC [RemoteServer].DatabaseName.DatabaseOwner.StoredProcedureName
プロシージャを実行する小さなSSISパッケージを作成します。プロジェクトをエージェントサーバーにデプロイします。エージェントジョブステップを使用してパッケージを実行します。
私のユースケース:イベントレコードの大規模なデータベースの末尾を削除する手順があり、ヘッドへの書き込みを妨げないようにしたかった。削除手順が短時間で自動的に停止することを確認してから、ヘッドに書き込む手順の後にエージェントステップを追加しました。