ジョブの作成

このトピックでは、SQL Server Management Studio、Transact-SQL、または SQL Server 管理オブジェクト (SMO) を使用して、SQL Server 2012 で SQL Server エージェント ジョブを作成する方法について説明します。

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

  • 作業を開始する準備:

    制限事項と制約事項

    セキュリティ

  • ジョブを作成する方法:

    SQL Server Management Studio

    Transact-SQL

    SQL Server 管理オブジェクト

作業を開始する準備

制限事項と制約事項

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

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

  • ローカル ジョブはローカル SQL Server エージェントによってキャッシュに格納されます。 したがって、ジョブを変更すると、SQL Server エージェントは暗黙的にジョブをキャッシュに再登録します。 sp_add_jobserver が呼び出されるまで SQL Server エージェントはジョブをキャッシュに格納しないので、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 Management Objects (SMO)」を参照してください。 コード例については、「SQL Server エージェントでの自動管理タスクのスケジュール設定」を参照してください。

[先頭に戻る]