SQL Server Management Studio (SSMS) で SQL Server エージェント ジョブを作成する
適用対象:SQL Server
Azure SQL Managed Instance
大事な
Azure SQL Managed Instance では、ほとんどの SQL Server エージェント機能がサポートされています。 詳細については、Azure SQL Managed Instance の T-SQL の相違点 を参照してください。
この記事では、SQL Server Management Studio (SSMS)、Transact-SQL (T-SQL)、または SQL Server 管理オブジェクト (SMO) を使用して SQL Server エージェント ジョブを作成する方法について説明します。
オペレーターに送信できるジョブ ステップ、スケジュール、アラート、通知を追加するには、「関連項目」セクションのトピックへのリンクを参照してください。
前提 条件
- ユーザーは、SQL Server エージェント固定データベース ロールまたは sysadmin ロールのメンバーである必要があります。
- ジョブを変更できるのは、ジョブの所有者または sysadmin のメンバー だけです。
- ジョブを別のログインに割り当てると、ジョブを実行するための十分なアクセス許可は保証されません。
セキュリティに関する考慮事項
- ジョブ所有者を変更できるのは、システム管理者 だけです。
- sysadmin はジョブの所有権を他のユーザーに割り当てて、任意のジョブを実行できます。
- プロキシ アカウントを必要とするステップを持つジョブは、新しい所有者がそれらのプロキシにアクセスできるようにする必要があります。または、ジョブが失敗します。
セキュリティの詳細については、「SQL Server エージェントセキュリティ の実装」を参照してください。
SSMS を使用してジョブを作成する方法
- オブジェクト エクスプローラーで、ジョブを作成するサーバーを展開します。
- SQL Server エージェントを展開します。
- ジョブ を右クリックし、[新しいジョブ...] を選択します。
- 全般 ページで、ジョブのプロパティを構成します。 詳細については、ジョブプロパティの「全般」ページ を参照してください ()。
- [ステップ] ページで、ジョブ ステップを構成します。 詳細については、「ジョブのプロパティ - ステップ ページの」を参照してください。
- [スケジュール] ページで、ジョブ スケジュールを設定します。 詳細については、「ジョブのプロパティ - スケジュール ページの」を参照してください。
- アラート ページで、ジョブ アラートを構成します。 詳細については、「ジョブのプロパティ - [アラート] ページの」を参照してください。
- [通知] ページで、ジョブ完了通知を構成します。 詳細については、「ジョブのプロパティ - 通知ページの」を参照してください。
- ターゲット ページで、ターゲットサーバーを構成します。 詳細については、「ジョブのプロパティ - ターゲット ページの」を参照してください。
- [OK] を選択してジョブを保存します。
Transact-SQL を使用してジョブを作成する方法 (T-SQL)
オブジェクト エクスプローラーで、サーバーに接続します。
新しいクエリ ウィンドウを開きます。
次のスクリプトをコピーして貼り付けます。
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 ; 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
詳細については、以下を参照してください。
- sp_add_job (Transact-SQL)
- sp_add_jobstep (Transact-SQL)
- sp_add_schedule (Transact-SQL)
- sp_attach_schedule (Transact-SQL)
- sp_add_jobserver (Transact-SQL)
SQL Server 管理オブジェクトの使用
SQL Server 管理オブジェクト (SMO) を使用して SQL Server エージェント ジョブを作成するには:
Visual Basic、Visual C#、PowerShell などのプログラミング言語を使用して、ジョブ クラスの Create メソッドを呼び出します。 コード例については、「SQL Server エージェントでの自動管理タスクのスケジュール設定」を参照してください。