ジョブを作成する

適用対象:SQL ServerAzure 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 Management 管理オブジェクト (SMO) を使用して、SQL Server で SQL Server エージェント ジョブを作成する方法について説明します。

オペレーターに送信できるジョブ ステップ、スケジュール、警告、および通知を追加するには、「参照」セクションのトピックをご覧ください。

はじめに

制限事項と制約事項

  • ジョブを作成するには、 SQL Server エージェント固定データベース ロールか sysadmin 固定サーバー ロールのメンバーである必要があります。 ジョブの編集は、ジョブの所有者または sysadmin ロールのメンバーのみが行うことができます。 SQL Server エージェント固定データベース ロールの詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。

  • 別のログインにジョブを割り当てた場合に、新しい所有者がそのジョブを正常に実行できる十分な権限を持っていないこともあります。

  • ローカル ジョブはローカル SQL Server エージェントによってキャッシュに格納されます。 したがって、ジョブを変更すると、 SQL Server エージェントは暗黙的にジョブをキャッシュに再登録します。 SQL Server sp_add_jobserver が呼び出されるまで エージェントはジョブをキャッシュに格納しないので、 sp_add_jobserver を最後に呼び出す方が効率的です。

セキュリティ

  • ジョブの所有者を変更するには、システム管理者でなければなりません。

  • セキュリティを確保するため、ジョブの所有者または sysadmin ロールのメンバーだけがジョブの定義を変更できます。 sysadmin 固定サーバー ロールのメンバーのみが別のユーザーにジョブの所有権を割り当てることができ、ジョブの所有者とは無関係にジョブを実行できます。

    注意

    ジョブの所有権を sysadmin 固定サーバー ロールのメンバーでないユーザーに変更し、そのジョブがプロキシ アカウントを必要とするジョブ ステップを実行する ( SSIS パッケージの実行など) 場合は、ユーザーがそのプロキシ アカウントにアクセスできることを確認してください。アクセスできない場合、ジョブは失敗します。

アクセス許可

詳細については、「 SQL Server エージェントのセキュリティの実装」をご覧ください。

SQL Server Management Studio を使用する

SQL Server エージェントのジョブを作成するには

  1. オブジェクト エクスプローラーで、SQL Server エージェント ジョブを作成するサーバーをプラス記号をクリックして展開します。

  2. プラス記号をクリックして [SQL Server エージェント]を展開します。

  3. [ジョブ] フォルダーを右クリックし、[新しいジョブ] を選択します。

  4. [新しいジョブ] ダイアログ ボックスの [全般] ページで、ジョブの全般的なプロパティを変更します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([全般] ページ)」を参照してください

  5. [ステップ] ページで、ジョブ ステップを編成します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([手順] ページ)」を参照してください

  6. [スケジュール ] ページで、ジョブのスケジュールを編成します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([スケジュール] ページ)」を参照してください

  7. [警告] ページで、ジョブの警告を編成します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([警告] ページ)」を参照してください

  8. [通知] ページで、ジョブの完了時に Microsoft SQL Server エージェントが実行するアクションを設定します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([通知] ページ)」を参照してください。

  9. [ターゲット] ページで、ジョブのターゲット サーバーを管理します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([対象サーバー] ページ)」を参照してください。

  10. 完了したら、 [OK] をクリックします。

Transact-SQL の使用

SQL Server エージェントのジョブを作成するには

  1. オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。

    USE msdb ;  
    GO  
    EXEC dbo.sp_add_job  
        @job_name = N'Weekly Sales Data Backup' ;  
    GO  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name = N'Set database to read only',  
        @subsystem = N'TSQL',  
        @command = N'ALTER DATABASE SALES SET READ_ONLY',   
        @retry_attempts = 5,  
        @retry_interval = 5 ;  
    GO  
    EXEC dbo.sp_add_schedule  
        @schedule_name = N'RunOnce',  
        @freq_type = 1,  
        @active_start_time = 233000 ;  
    USE msdb ;  
    GO  
    EXEC sp_attach_schedule  
       @job_name = N'Weekly Sales Data Backup',  
       @schedule_name = N'RunOnce';  
    GO  
    EXEC dbo.sp_add_jobserver  
        @job_name = N'Weekly Sales Data Backup';  
    GO  
    

詳細については、次を参照してください。

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

SQL Server エージェントのジョブを作成するには

Visual Basic、Visual C#、PowerShell などの選択したプログラミング言語で Job クラスの Create メソッドを呼び出します。 コード例については、「 SQL Server エージェントでの自動管理タスクのスケジュール設定」を参照してください。