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