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