CmdExec ジョブ ステップの作成
適用対象: SQL Server Azure SQL Managed Instance
重要
現在、Azure SQL Managed Instance によって、すべてではありませんが、ほとんどの SQL Server エージェントの機能がサポートされています。 詳細については、Azure SQL Managed Instance と SQL Server の T-SQL の相違点に関するページを参照してください。
このトピックでは、SQL Server Management Studio、Transact-SQL、または SQL Server 管理オブジェクトを使用して、実行可能なプログラムまたはオペレーティング システム コマンドを使用する Microsoft SQL Server エージェント ジョブ ステップを SQL Server で作成および定義する方法について説明します。
はじめに
セキュリティ
既定では、 sysadmin 固定サーバー ロールのメンバーだけが CmdExec ジョブ ステップを作成できます。 これらのジョブ ステップは、 sysadmin ユーザーがプロキシ アカウントを作成しない限り、SQL Server エージェント サービス アカウントのコンテキストで実行されます。 sysadmin ロールのメンバーではないユーザーでも、CmdExec プロキシ アカウントにアクセスできる場合は CmdExec ジョブ ステップを作成できます。
アクセス許可
詳細については、「 SQL Server エージェントのセキュリティの実装」をご覧ください。
SQL Server Management Studio を使用する
CmdExec ジョブ ステップを作成するには
オブジェクト エクスプローラー で、 SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
[SQL Server エージェント] を展開し、新しいジョブを作成するか、既存のジョブを右クリックして [プロパティ] をクリックします。
[ジョブのプロパティ] ダイアログで [ステップ] ページをクリックし、 [新規作成] をクリックします。
[新しいジョブ ステップ] ダイアログの [ステップ名] ボックスにジョブ ステップ名を入力します。
[種類] ボックスの一覧の [オペレーティング システム (CmdExec)] をクリックします。
[実行するアカウント名] ボックスの一覧で、ジョブで使用する資格情報を備えたプロキシ アカウントをクリックします。 既定では、CmdExec ジョブ ステップは SQL Server エージェント サービス アカウントのコンテキストで実行されます。
[コマンド成功時のプロセス終了コード] ボックスに、0 ~ 999999 の値を入力します。
[コマンド] ボックスに、オペレーティング システム コマンドまたは実行可能プログラムを入力します。 例については、「Transact T-SQL の使用」を参照してください。
[詳細設定] ページをクリックして、ジョブが成功または失敗した場合の操作、SQL Server エージェントによるジョブ ステップ実行の試行回数、SQL Server エージェントでジョブ ステップの出力を書き込むファイルなど、ジョブ ステップのオプションを設定します。 sysadmin 固定サーバー ロールのメンバーだけが、オペレーティング システム ファイルにジョブ ステップの出力を書き込むことができます。
Transact-SQL の使用
CmdExec ジョブ ステップを作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。
-- creates a job step that uses CmdExec USE msdb; GO EXEC sp_add_jobstep @job_name = N'Weekly Sales Data Backup', @step_name = N'Set database to read only', @subsystem = N'CMDEXEC', @command = 'C:\clickme_scripts\SQL11\PostBOLReorg GetHsX.exe', @retry_attempts = 5, @retry_interval = 5 ; GO
詳細については、「 sp_add_jobstep (Transact-SQL)」を参照してください。
SQL Server 管理オブジェクトの使用
CmdExec ジョブ ステップを作成するには
Visual Basic、Visual C#、PowerShell などの選択したプログラミング言語で JobStep クラスを使用します。