sp_add_job(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed Instance

SQL Server 에이전트 서비스에서 실행되는 새 작업을 만듭니다.

Transact-SQL 구문 표기 규칙

Important

현재 Azure SQL Managed Instance에서는 SQL Server 에이전트 기능이 대부분 지원됩니다. 자세한 내용은 SQL Server와 Azure SQL Managed Instance 간의 T-SQL 차이점을 참조하세요.

구문

sp_add_job 
         [ @job_name = ] N'job_name'
     [ , [ @enabled = ] enabled ]
     [ , [ @description = ] N'description' ]
     [ , [ @start_step_id = ] step_id ]
     [ , [ @category_name = ] 'category' ]
     [ , [ @category_id = ] category_id ]
     [ , [ @owner_login_name = ] 'login' ]
     [ , [ @notify_level_eventlog = ] eventlog_level ]
     [ , [ @notify_level_email = ] email_level ]
     [ , [ @notify_level_netsend = ] netsend_level ]
     [ , [ @notify_level_page = ] page_level ]
     [ , [ @notify_email_operator_name = ] 'email_name' ]
     [ , [ @notify_netsend_operator_name = ] 'netsend_name' ]
     [ , [ @notify_page_operator_name = ] 'page_name' ]
     [ , [ @delete_level = ] delete_level ]
     [ , [ @job_id = ] job_id OUTPUT ]
[ ; ]

인수

@job_name

작업의 이름입니다. 이름은 고유해야 하며 백분율(%) 문자를 포함할 수 없습니다. @job_name nvarchar(128)이며 기본값은 없습니다. 필수입니다.

@enabled

추가된 작업의 상태 나타냅니다. enabled는 tinyint이며, 기본값 1 은 (사용)입니다. 작업이 활성화되지 않고 일정에 따라 실행되지 않는 경우 0수동으로 실행할 수 있습니다.

@description

작업에 대한 설명입니다. @description 기본값NULL인 nvarchar(512)입니다. @description 생략하면 N'No description available' 사용됩니다.

@start_step_id

작업에 대해 실행할 첫 번째 단계의 ID 번호입니다. @start_step_id 기본값1인 int입니다.

@category_name

작업의 범주입니다. @category_name sysname이며 기본값은 .입니다NULL.

@category_id

작업 범주를 지정하기 위한 언어 독립적 메커니즘입니다. @category_id 기본값NULL인 int입니다.

@owner_login_name

작업을 소유하는 로그인의 이름입니다. @owner_login_name 현재 로그인 이름으로 해석되는 기본값NULL인 sysname입니다. sysadmin 고정 서버 역할의 멤버만 @owner_login_name 값을 설정하거나 변경할 수 있습니다. sysadmin 역할 집합의 멤버가 아닌 사용자가 @owner_login_name 값을 변경하면 이 저장 프로시저의 실행이 실패하고 오류가 반환됩니다.

@notify_level_eventlog

이 작업에 대한 Microsoft Windows 애플리케이션 로그에 항목을 배치할 시기를 나타내는 값입니다. @notify_level_eventlog int이며 다음 값 중 하나일 수 있습니다.

설명
0 안 함
1 성공
2 (기본값) 실패 시
3 항상

@notify_level_email

이 작업이 완료될 때 전자 메일을 보낼 시기를 나타내는 값입니다. @notify_level_email 기본값인 int이며, 기본값0은 절대로 표시되지 않습니다. @notify_level_email @notify_level_eventlog 동일한 값을 사용합니다.

@notify_level_netsend

이 작업이 완료될 때 네트워크 메시지를 보낼 시기를 나타내는 값입니다. @notify_level_netsend 기본값인 int이며, 기본값0은 절대로 표시되지 않습니다. @notify_level_netsend @notify_level_eventlog 동일한 값을 사용합니다.

@notify_level_page

이 작업이 완료될 때 페이지를 보낼 시간을 나타내는 값입니다. @notify_level_page 기본값인 int이며, 기본값0은 절대로 표시되지 않습니다. @notify_level_page @notify_level_eventlog 동일한 값을 사용합니다.

@notify_email_operator_name

@notify_email_operator_name 도달할 때 전자 메일을 보낼 사람의 전자 메일 이름입니다. @notify_email_operator_name sysname이며 기본값은 .입니다NULL.

@notify_netsend_operator_name

이 작업이 완료될 때 네트워크 메시지를 보낼 운영자의 이름입니다. @notify_netsend_operator_name sysname이며 기본값은 .입니다NULL.

@notify_page_operator_name

이 작업이 완료될 때 페이지를 표시할 사람의 이름입니다. @notify_page_operator_name sysname이며 기본값은 .입니다NULL.

@delete_level

작업을 삭제할 시간을 나타내는 값입니다. delete_value 기본값0인 int입니다. 즉, 절대로 설정되지 않습니다. @delete_level @notify_level_eventlog 동일한 값을 사용합니다.

참고 항목

@delete_level3경우 작업에 대해 정의된 일정에 관계없이 작업이 한 번만 실행됩니다. 또한 작업 자체를 삭제하면 작업에 대한 모든 기록도 삭제됩니다.

@job_id 출력

성공적으로 생성된 작업에 할당되는 작업 ID입니다. @job_id 기본값NULL인 uniqueidentifier 형식의 출력 변수입니다.

반환 코드 값

0 (성공) 또는 1 (실패).

결과 집합

없음.

설명

@originating_server 있지만 sp_add_job인수 아래에 나열되지 않습니다. @originating_server 내부용으로 예약되어 있습니다.

작업을 추가하기 위해 실행된 후 sp_add_job 작업에 sp_add_jobstep 대한 작업을 수행하는 단계를 추가하는 데 사용할 수 있습니다. sp_add_jobschedule는 SQL Server 에이전트 서비스에서 작업을 실행하는 데 사용하는 일정을 만드는 데 사용할 수 있습니다.

작업이 실행되는 sp_delete_jobserver SQL Server 인스턴스를 설정하고 SQL Server 인스턴스에서 작업을 제거하는 데 사용합니다sp_add_jobserver. 작업이 다중 서버 환경의 하나 이상의 대상 서버에서 실행되는 경우 작업에 대한 대상 서버 또는 대상 서버 그룹을 설정하는 데 사용합니다 sp_apply_job_to_targets . 대상 서버 또는 대상 서버 그룹에서 sp_remove_job_from_targets작업을 제거하려면 . 다중 서버 관리istration(MSX/TSX) 기능은 Azure SQL Managed Instance에서 지원되지 않습니다.

SQL Server Management Studio는 작업 구조를 만들고 관리할 수 있는 바람직한 방법을 제공하는데, 이는 그래픽을 사용하여 쉽게 작업을 관리할 수 있는 방법입니다.

이 저장 프로시저는 Azure SQL Database용 Azure Elastic Jobs 서비스에 대한 유사한 개체와 이름을 sp_add_job 공유합니다. 탄력적 작업 버전에 대한 자세한 내용은 jobs.sp_add_job(Azure 탄력적 작업)(Transact-SQL)을 참조하세요.

사용 권한

이 저장 프로시저는 db_owner 역할이 소유합니다. 모든 사용자에 대한 사용 권한을 부여 EXECUTE 할 수 있지만 SQL Server 업그레이드 중에 이러한 권한이 재정의될 수 있습니다.

다른 사용자에게는 데이터베이스에서 다음 SQL Server 에이전트 고정 데이터베이스 역할 msdb 중 하나가 부여되어야 합니다.

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

이러한 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하세요.

sysadmin 고정 서버 역할의 멤버만 @owner_login_name 값을 설정하거나 변경할 수 있습니다. sysadmin 역할 집합의 멤버가 아닌 사용자가 @owner_login_name 값을 변경하면 이 저장 프로시저의 실행이 실패하고 오류가 반환됩니다.

예제

A. 작업 추가

다음 예에서는 NightlyBackups라는 새 작업을 추가합니다.

USE msdb;
GO

EXEC dbo.sp_add_job @job_name = N'NightlyBackups';
GO

B. 호출기, 전자 메일 및 net send 정보를 사용하여 작업 추가

이 예제에서는 작업이 실패할 경우(호출기, 전자 메일 또는 네트워크 팝업 메시지로) 알리 François Ajenstat 고 작업이 성공적으로 완료되면 작업을 삭제하는 작업을 만드는 작업을 Ad hoc Sales Data Backup 만듭니다.

참고 항목

이 예제에서는 명명된 연산자와 명명 François Ajenstatfrançoisa 된 로그인이 이미 있다고 가정합니다.

USE msdb;
GO

EXEC dbo.sp_add_job
    @job_name = N'Ad hoc Sales Data Backup',
    @enabled = 1,
    @description = N'Ad hoc backup of sales data',
    @owner_login_name = N'françoisa',
    @notify_level_eventlog = 2,
    @notify_level_email = 2,
    @notify_level_netsend = 2,
    @notify_level_page = 2,
    @notify_email_operator_name = N'François Ajenstat',
    @notify_netsend_operator_name = N'François Ajenstat',
    @notify_page_operator_name = N'François Ajenstat',
    @delete_level = 1;
GO