CmdExec ジョブ ステップの作成Create a CmdExec Job Step

適用対象: ○SQL Server ○Azure SQL Database (Managed Instance のみ) ×Azure SQL Data Warehouse ×Parallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

重要

Azure SQL Database Managed Instance では現在、すべてではありませんがほとんどの SQL Server エージェントの機能がサポートされています。On Azure SQL Database Managed Instance, most, but not all SQL Server Agent features are currently supported. 詳細については、「Azure SQL Database Managed Instance と SQL Server の T-SQL の相違点」を参照してください。See Azure SQL Database Managed Instance T-SQL differences from SQL Server for details.

このトピックでは、 MicrosoftMicrosoft SQL ServerSQL ServerSQL Server 2017SQL Server 2017 、または SQL Server 管理オブジェクトを使用して、実行可能なプログラムまたはオペレーティング システム コマンドを使用する SQL Server Management StudioSQL Server Management Studio Transact-SQLTransact-SQL エージェント ジョブ ステップを作成および定義する方法について説明します。This topic describes how to create and define a MicrosoftMicrosoft SQL ServerSQL Server Agent job step in SQL Server 2017SQL Server 2017 that uses an executable program or operating system command by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL or SQL Server Management Objects.

はじめにBefore You Begin

セキュリティSecurity

既定では、 sysadmin 固定サーバー ロールのメンバーだけが CmdExec ジョブ ステップを作成できます。By default, only members of the sysadmin fixed server role can create CmdExec job steps. これらのジョブ ステップは、 sysadmin ユーザーがプロキシ アカウントを作成しない限り、SQL Server エージェント サービス アカウントのコンテキストで実行されます。These job steps run under the context of the SQL Server Agent service account unless the sysadmin user creates a proxy account. sysadmin ロールのメンバーではないユーザーでも、CmdExec プロキシ アカウントにアクセスできる場合は CmdExec ジョブ ステップを作成できます。Users who are not members of the sysadmin role can create CmdExec job steps if they have access to a CmdExec proxy account.

アクセス許可Permissions

詳細については、「 SQL Server エージェントのセキュリティの実装」をご覧ください。For detailed information, see Implement SQL Server Agent Security.

SQL Server Management Studio の使用Using SQL Server Management Studio

CmdExec ジョブ ステップを作成するにはTo create a CmdExec job step

  1. オブジェクト エクスプローラー で、 SQL Server データベース エンジンSQL Server Database Engineのインスタンスに接続し、そのインスタンスを展開します。In Object Explorer, connect to an instance of the SQL Server データベース エンジンSQL Server Database Engine, and then expand that instance.

  2. [SQL Server エージェント] を展開し、新しいジョブを作成するか、既存のジョブを右クリックして [プロパティ] をクリックします。Expand SQL Server Agent, create a new job or right-click an existing job, and then click Properties.

  3. [ジョブのプロパティ] ダイアログで [ステップ] ページをクリックし、 [新規作成] をクリックします。In the Job Properties dialog, click the Steps page, and then click New.

  4. [新しいジョブ ステップ] ダイアログの [ステップ名] ボックスにジョブ ステップ名を入力します。In the New Job Step dialog, type a job Step name.

  5. [種類] ボックスの一覧の [オペレーティング システム (CmdExec)] をクリックします。In the Type list, choose Operating system (CmdExec).

  6. [実行するアカウント名] ボックスの一覧で、ジョブで使用する資格情報を備えたプロキシ アカウントをクリックします。In Run as list, select the proxy account with the credentials that the job will use. 既定では、CmdExec ジョブ ステップは SQL Server エージェント サービス アカウントのコンテキストで実行されます。By default, CmdExec job steps run under the context of the SQL Server Agent service account.

  7. [コマンド成功時のプロセス終了コード] ボックスに、0 ~ 999999 の値を入力します。In the Process exit code of a successful command box, enter a value from 0 to 999999.

  8. [コマンド] ボックスに、オペレーティング システム コマンドまたは実行可能プログラムを入力します。In the Command box, enter the operating system command or executable program. 例については、「Transact T-SQL の使用」を参照してください。See "Using Transact T-SQL for an example.

  9. [詳細設定] ページをクリックして、ジョブが成功または失敗した場合の操作、 SQL ServerSQL Server エージェントによるジョブ ステップ実行の試行回数、 SQL ServerSQL Server エージェントでジョブ ステップの出力を書き込むファイルなど、ジョブ ステップのオプションを設定します。Click the Advanced page to set job step options, such as: what action to take if the job step succeeds or fails, how many times SQL ServerSQL Server Agent should try to execute the job step, and the file where SQL ServerSQL Server Agent can write the job step output. sysadmin 固定サーバー ロールのメンバーだけが、オペレーティング システム ファイルにジョブ ステップの出力を書き込むことができます。Only members of the sysadmin fixed server role can write job step output to an operating system file.

Transact-SQL の使用Using Transact-SQL

CmdExec ジョブ ステップを作成するにはTo create a CmdExec job step

  1. オブジェクト エクスプローラーで、 データベース エンジンDatabase Engineのインスタンスに接続します。In Object Explorer, connect to an instance of データベース エンジンDatabase Engine.

  2. [標準] ツール バーの [新しいクエリ] をクリックします。On the Standard bar, click New Query.

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。Copy and paste the following example into the query window and click Execute.

    -- 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)」を参照してください。For more information, see sp_add_jobstep (Transact-SQL)

SQL Server 管理オブジェクトの使用Using SQL Server Management Objects

CmdExec ジョブ ステップを作成するにはTo create a CmdExec job step

Visual Basic、Visual C#、PowerShell などの選択したプログラミング言語で JobStep クラスを使用します。Use the JobStep class by using a programming language that you choose, such as Visual Basic, Visual C#, or PowerShell.