CmdExec ジョブ ステップを作成する
適用対象:SQL Server
Azure SQL Managed Instance
大事な
Azure SQL Managed Instance では、SQL Server エージェントのほとんどの機能が現在サポートされているわけではありません。 詳細については、Azure SQL Managed Instance の T-SQL と SQL Server の違いの を参照してください。
このトピックでは、SQL Server Management Studio、Transact-SQL、または SQL Server 管理オブジェクトを使用して実行可能プログラムまたはオペレーティング システム コマンドを使用する、SQL Server で Microsoft 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 クラスを使用します。