ジョブを作成する
適用対象: 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 管理オブジェクト (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 エージェントのジョブを作成するには
オブジェクト エクスプローラーで、SQL Server エージェント ジョブを作成するサーバーのプラス記号を選択して展開します。
プラス記号を選択して [SQL Server エージェント] を展開します。
[ジョブ] フォルダーを右クリックし、[新しいジョブ] を選択します。
[新しいジョブ] ダイアログ ボックスの [全般] ページで、ジョブの全般的なプロパティを変更します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([全般] ページ)」を参照してください
[ステップ] ページで、ジョブ ステップを編成します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([手順] ページ)」を参照してください
[スケジュール ] ページで、ジョブのスケジュールを編成します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([スケジュール] ページ)」を参照してください
[警告] ページで、ジョブの警告を編成します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([警告] ページ)」を参照してください
[通知] ページで、ジョブの完了時に Microsoft SQL Server エージェントが実行するアクションを設定します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([通知] ページ)」を参照してください。
[ターゲット] ページで、ジョブのターゲット サーバーを管理します。 このページで利用可能なオプションの詳細については、「ジョブのプロパティ - [新しいジョブ] ([対象サーバー] ページ)」を参照してください。
終わったら、 [OK] を選択します。
Transact-SQL の使用
SQL Server エージェントのジョブを作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで、 [新しいクエリ] を選択します。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。
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 エージェントでの自動管理タスクのスケジュール設定」を参照してください。