goodbyegangsterのブログ

備忘録的な

SQLServer Agentにジョブを追加するコマンド

SQLServerにジョブを追加するコマンド。備忘録。

まず、事前に実行したいジョブのスケジュール定義を作成しておきます。

-- スケジュール定義の作成
USE msdb;

EXEC dbo.sp_add_schedule
    @schedule_name = N'Daily 0900',
    @freq_type = 4, -- 実行間隔を指定. 4はdaily
    @freq_interval = 1, -- daily指定の場合で毎日実行したい場合
    @active_start_time = 090000; -- HHMMSSで指定

GO

スケジュール定義を作成した後、実行したいジョブを登録して、スケジュール定義と紐付けします。

-- ジョブの作成(CHCKDB)対象db文繰り返す
USE msdb;

EXEC dbo.sp_add_job
    @job_name = N'Daily CHECKDB',
    @enabled = 1, -- 有効化
    @owner_login_name = 'XXXXXXXX', -- ジョブ所有者(TSQLの実行ユーザとなる)を指定
    @notify_level_eventlog = 2 -- ジョブ失敗時のアクションを指定. 2はWinアプリログに出力

EXEC sp_add_jobstep
    @job_name = N'Daily CHECKDB', -- ジョブステップを追加したいジョブ名(すぐ上でaddしてる奴)を指定
    @step_name = N'CHECKDB', -- 作成したいステップ名を指定
    @subsystem = N'TSQL',
    @command = N'DBCC CHECKDB', -- 実行文を記載
    @database_name = 'XXXXXXX'; -- 対象dbを指定

-- 実行ジョブとスケジュールのアタッチ
EXEC sp_attach_schedule
   @job_name = N'Daily CHECKDB', -- 紐付けたいジョブ
   @schedule_name = N'Daily 0900'; -- 紐付けたいスケジュール設定

-- 対象サーバの指定
EXEC dbo.sp_add_jobserver
    @job_name = N'Daily CHECKDB'; -- 紐付けたいジョブ名を指定. サーバ情報を指定しない場合、ローカルサーバが指定される
GO