[DB] MSSQL 작업 스케줄러 이용 배치(.bat) 파일 실행하기

용용이·2023년 2월 11일
0

DB

목록 보기
2/2

저번 시간에는 SQL Server 에이전트를 이용한 스케줄링 작업을 해보았는데, 이번 시간에는 Windows 작업 스케줄러를 이용하여 배치 파일을 실행하여 테이블의 데이터를 업데이트 방법에 대해 알아보겠습니다.

스케줄러를 통해 프로시저를 실행하여 테이블의 데이터를 업데이트하기 위해 저번 시간에 사용하였던 테이블과 프로시저를 사용하겠습니다.

TABLE

CREATE TABLE TMember
(
    id          INT         IDENTITY,
    regdate     DATETIME
)
GO

PROCEDURE

CREATE PROCEDURE SP_SMYONG_SCHEDULER
AS
BEGIN
    INSERT INTO TMember (regdate)
    VALUES (getdate())
END

SP_SMYONG_SCHEDULER 프로시저는 호출되었을 때 현재 시간을 TMember 테이블에
insert 하는 단순한 프로시저 입니다.

작업 스케줄러를 이용하여 실행할 배치파일을 생성해 보도록 하겠습니다.

  1. 메모장을 실행 후 배치 파일 실행을 위한 명령어를 작성해 보겠습니다.
@echo off
set pcname=%COMPUTERNAME%
sqlcmd -E -S %pcname% -I -Q "EXEC SMYONG_TEST.DBO.SP_SMYONG_SCHEDULER"

-S 옵션 입력 후 들어가는 파라미터는 MSSQL 서버의 이름을 입력해 주면 됩니다.
서버 이름은 %COMPUTERNAME% 명령을 이용해 값을 받아오면 됩니다.
간단한 쿼리일 경우 -Q 옵션을 입력 후 쿼리를 통해 프로시저를 호출하였으나,
쿼리를 파일로 만들어 관리하실 경우 옵션 -i "실행시킬 sql 경로" 를 사용하여 파일을 호출할 수도 있습니다.
아래 링크들은 배치 파일 명령어 및 sqlcmd 옵션들을 정리해놓은 사이트로 참고하시면 좋을 것 같습니다.

[배치 명령어]
[sqlcmd 명령어]

  1. 파일을 저장할 때 파일명 .bat 로 확장자명을 변경해 주시면 됩니다.
    파일 명은 callBatch.bat 로 만들겠습니다.

  1. 파일이 정상적으로 생성되었으면 윈도우 검색 창에 작업 스케줄러를 검색하여 클릭합니다.
  1. 작업 만들기 클릭 후 이름, 설명을 입력 후 트리거를 클릭합니다.

  1. 트리거 탭에 들어왔으면 새로 만들기를 클릭합니다.

  1. 실행을 원하는 시간,작업 간격들을 설정합니다. 5분에 한 번씩 1시간 설정 후 확인 버튼을 누릅니다.

  1. 트리거가 정상적으로 생성되었으면 동작을 클릭하여 어떤 파일을 실행할지 설정해 보겠습니다.

  1. 새로 만들기 클릭 후 찾아보기를 클릭합니다.

  1. 2번에서 생성한 파일을 찾아 클릭 후 열기를 클릭합니다.

  2. 파일 위치가 업로드되며 확인 버튼을 클릭합니다.

  1. 동작이 정상적으로 생성되었으면 조건을 클릭해 보겠습니다.

  1. 조건설정에는 트리거, 동작에 대한 설정들을 세부적으로 사용자가 설정할 수 있으며 필요에 따라 체크하시면 되며 확인을 클릭하면 트리거가 지정된 시점에 동작들이 실행됩니다.

  1. 동작들은 TMember 테이블에 5분마다 insert하는 배치 파일이므로 테이블을 조회하여 배치 프로그램이 정상적으로 실행되었나 확인해 보겠습니다.

정상적으로 배치 프로그램이 실행되어 데이터가 insert 되었습니다.

위와 같이 작업 스케줄러를 이용한 배치 프로그램 실행해 보았으며,

그 외 작업 스케줄러에 대한 질문들은 댓글로 남겨주시면 답변드리겠습니다.

감사합니다.

profile
Dragon

0개의 댓글