작업 만들기Create a Job

이 항목에서는 SQL Server 2017SQL Server 2017, SQL Server Management StudioSQL Server Management Studio 또는 SMO(SQL Server 관리 개체)를 사용하여 Transact-SQLTransact-SQL에서 SQL Server 에이전트 작업을 만드는 방법에 대해 설명합니다.This topic describes how to create a SQL Server Agent job in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or SQL Server Management Objects (SMO).

운영자에게 전송할 수 있는 작업 단계, 일정, 경고 및 알림을 추가하려면 참조 섹션에 있는 항목에 대한 링크를 참조하세요.To add job steps, schedules, alerts, and notifications that can be sent to operators, see the links to topics in the See Also section.

시작하기 전에Before You Begin

제한 사항Limitations and Restrictions

  • 작업을 만들려면 사용자가 SQL ServerSQL Server 에이전트 고정 데이터베이스 역할이나 sysadmin 고정 서버 역할 중 하나의 멤버여야 합니다.To create a job, a user must be a member of one of the SQL ServerSQL Server Agent fixed database roles or the sysadmin fixed server role. 작업은 소유자나 sysadmin 역할의 멤버만 편집할 수 있습니다.A job can be edited only by its owner or members of the sysadmin role. SQL ServerSQL Server 에이전트 고정 데이터베이스 역할에 대한 자세한 내용은 [SQL Server 에이전트 고정 데이터베이스 역할](../../ssms/agent/sql-server-agent-fixed-database-roles.md)을 참조하세요.For more information about the SQL ServerSQL Server Agent fixed database roles, see SQL Server Agent Fixed Database Roles.

  • 다른 로그인에 작업을 할당한다고 해서 새 소유자가 작업을 성공적으로 실행할 수 있는 충분한 권한을 가진다고 보장할 수 없습니다.Assigning a job to another login does not guarantee that the new owner has sufficient permission to run the job successfully.

  • 로컬 SQL ServerSQL Server 에이전트가 로컬 작업을 캐시하므로Local jobs are cached by the local SQL ServerSQL Server Agent. 수정 내용이 있을 경우 이 내용은 SQL ServerSQL Server 에이전트에서 작업을 다시 캐시하도록 암시적으로 강제 설정합니다.Therefore, any modifications implicitly force SQL ServerSQL Server Agent to re-cache the job. SQL ServerSQL Server sp_add_jobserver 가 호출될 때까지는 에이전트가 작업을 캐시하지 않으므로 마지막에 sp_add_jobserver 를 호출하는 것이 효율적입니다.Because SQL ServerSQL Server Agent does not cache the job until sp_add_jobserver is called, it is more efficient to call sp_add_jobserver last.

보안Security

  • 작업 소유자를 변경하려면 시스템 관리자여야 합니다.You must be a system administrator to change the owner of a job.

  • 보안을 위해 작업 소유자나 sysadmin 역할의 멤버만 작업 정의를 변경할 수 있습니다.For security reasons, only the job owner or a member of the sysadmin role can change the definition of the job. sysadmin 고정 서버 역할의 멤버만 작업 소유권을 다른 사용자에게 할당할 수 있으며 작업 소유자가 아니어도 모든 작업을 실행할 수 있습니다.Only members of the sysadmin fixed server role can assign job ownership to other users, and they can run any job, regardless of the job owner.

    참고

    sysadmin 고정 서버 역할의 멤버가 아닌 사용자로 작업 소유권을 변경하고 이 작업이 프록시 계정을 필요로 하는 작업 단계를 실행 중이면(예: SSISSSIS 패키지 실행) 사용자가 해당 프록시 계정에 액세스할 수 있어야 작업이 실패하지 않습니다.If you change job ownership to a user who is not a member of the sysadmin fixed server role, and the job is executing job steps that require proxy accounts (for example, SSISSSIS package execution), make sure that the user has access to that proxy account or else the job will fail.

PermissionsPermissions

자세한 내용은 Implement SQL Server Agent Security을 참조하세요.For detailed information, see Implement SQL Server Agent Security.

SQL Server Management Studio 사용Using SQL Server Management Studio

SQL Server 에이전트 작업을 만들려면To create a SQL Server Agent job

  1. 개체 탐색기에서 더하기 기호를 클릭하여 SQL Server 에이전트 작업을 만들려는 서버를 확장합니다.In the Object Explorer, click the plus sign to expand the server where you want to create a SQL Server Agent job.

  2. 더하기 기호를 클릭하여 SQL Server 에이전트를 확장합니다.Click the plus sign to expand SQL Server Agent.

  3. 작업 폴더를 마우스 오른쪽 단추로 클릭하고 새 작업...을 선택합니다.Right-click the Jobs folder and select New Job….

  4. 새 작업 대화 상자의 일반 페이지에서 작업의 일반 속성을 수정합니다.In the New Job dialog box, on the General page, modify the general properties of the job. 이 페이지에서 사용할 수 있는 옵션에 대한 자세한 내용은 작업 속성 - 새 작업(일반 페이지)을 참조하세요.For more information on the available options on this page, see Job Properties - New Job (General Page)

  5. 단계 페이지에서 작업 단계를 구성합니다.On the Steps page, organize the job steps. 이 페이지에서 사용할 수 있는 옵션에 대한 자세한 내용은 작업 속성 - 새 작업(단계 페이지)을 참조하세요.For more information on the available options on this page, see Job Properties - New Job (Steps Page)

  6. 일정 페이지에서 작업 일정을 구성합니다.On the Schedules page, organize schedules for the job. 이 페이지에서 사용할 수 있는 옵션에 대한 자세한 내용은 작업 속성 - 새 작업(일정 페이지)을 참조하세요.For more information on the available options on this page, see Job Properties - New Job (Schedules Page)

  7. 경고 페이지에서 작업에 대한 경고를 구성합니다.On the Alerts page, organize the alerts for the job. 이 페이지에서 사용할 수 있는 옵션에 대한 자세한 내용은 작업 속성 - 새 작업(경고 페이지)을 참조하세요.For more information on the available options on this page, see Job Properties - New Job (Alerts Page)

  8. 알림 페이지에서 작업이 완료되었을 때 MicrosoftMicrosoft SQL ServerSQL Server 에이전트가 수행할 동작을 설정합니다.On the Notifications page, set actions for MicrosoftMicrosoft SQL ServerSQL Server Agent to perform when the job completes. 이 페이지에서 사용할 수 있는 옵션에 대한 자세한 내용은 작업 속성 - 새 작업(알림 페이지)을 참조하세요.For more information on the available options on this page, see Job Properties - New Job (Notifications Page).

  9. 대상 페이지에서 작업의 대상 서버를 관리합니다.On the Targets page, manage the target servers for the job. 이 페이지에서 사용할 수 있는 옵션에 대한 자세한 내용은 작업 속성 - 새 작업(대상 페이지)을 참조하세요.For more information on the available options on this page, see Job Properties - New Job (Targets Page).

  10. 완료되었으면 확인을 클릭합니다.When finished, click OK.

Transact-SQL 사용Using Transact-SQL

SQL Server 에이전트 작업을 만들려면To create a SQL Server Agent job

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute.

    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 ;  
    USE msdb ;  
    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  
    

참조 항목:For more information, see:

SQL Server 관리 개체 사용Using SQL Server Management Objects

SQL Server 에이전트 작업을 만들려면To create a SQL Server Agent job

Visual Basic, Visual C#, PowerShell 등 선택한 프로그래밍 언어를 사용하여 Job 클래스의 Create 메서드를 호출합니다.Call the Create method of the Job class by using a programming language that you choose, such as Visual Basic, Visual C#, or PowerShell. 예제 코드를 보려면 SQL Server 에이전트에서 자동 관리 태스크 예약을 참조하세요.For example code, see Scheduling Automatic Administrative Tasks in SQL Server Agent.