본문 바로가기
MES 문의 : 010-8015-0400
IT개발/개발 일반

MSSQL, Job 스케줄러 T-SQL로 생성하기

by all it 2024. 11. 15.
반응형

SQL-SERVER 에이젼트에 작업을 추가하는 스크립트를 작성한다.
이미 있는 스케줄을 삭제하고 새로 추가하는 스크립트 이다.

아래 코드에서 이탤릭체 표현은 각자 상황에 맞게 수정해야 한다.


use msdb;
go

if exists (
              select 1
              from msdb.dbo.sysjobs
              where name = 'Daily sp_test Execution'
          )
    begin
        exec sp_delete_job @job_name = 'Daily sp_test Execution';
    end

declare @jobId UNIQUEIDENTIFIER;
declare @startDate INT;

-- 시작 날짜 계산 (다음 날)
set @startDate = cast(format(dateadd(day, 1, getdate()), 'yyyyMMdd') as INT);

-- 1. 작업(Job) 생성
exec sp_add_job
     @job_name = 'Daily sp_test Execution',
     @enabled = 1,
     @description = 'Executes the sp_test stored procedure every day at 00:00:05',
     @start_step_id = 1,
     @owner_login_name = 'sa',
     @job_id = @jobId output;

-- 2. 작업 단계(Step) 추가
exec sp_add_jobstep
     @job_id = @jobId,
     @step_name = 'Execute sp_test',
     @subsystem = 'TSQL',
     @command = 'EXEC sp_test;',
     @database_name = 'database',
     @retry_attempts = 0,
     @retry_interval = 0;

-- 3. 작업 스케줄(Schedule) 추가
exec sp_add_jobschedule
     @job_id = @jobId,
     @name = 'Daily at 00:00:05',
     @freq_type = 4, -- 매일 실행
     @freq_interval = 1, -- 매일
     @active_start_date = @startDate, -- 다음 날부터 시작
     @active_start_time = 5; -- 00:00:05

-- 4. 작업에 스케줄 연결
exec sp_add_jobserver
     @job_id = @jobId,
     @server_name = @@servername;
go

 

반응형

댓글