sp_add_job(Transact-SQL)
적용 대상: SQL Server Azure SQL Managed Instance
SQL Server 에이전트 서비스에서 실행되는 새 작업을 만듭니다.
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 |
Never |
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_level 3
경우 작업에 대해 정의된 일정에 관계없이 작업이 한 번만 실행됩니다. 또한 작업 자체를 삭제하면 작업에 대한 모든 기록도 삭제됩니다.
@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
작업을 제거하려면 . 다중 서버 관리(MSX/TSX) 기능은 Azure SQL Managed Instance에서 지원되지 않습니다.
SQL Server Management Studio는 작업 구조를 만들고 관리할 수 있는 바람직한 방법을 제공하는데, 이는 그래픽을 사용하여 쉽게 작업을 관리할 수 있는 방법입니다.
이 저장 프로시저는 Azure SQL Database용 Azure Elastic Jobs 서비스에 대한 유사한 개체와 이름을 sp_add_job
공유합니다. 탄력적 작업 버전에 대한 자세한 내용은 jobs.sp_add_job(Azure Elastic Jobs)를 참조하세요.
사용 권한
이 절차에 대한 사용 권한을 부여 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 Ajenstat
franç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
관련 콘텐츠
- sp_add_schedule(Transact-SQL)
- sp_add_jobstep(Transact-SQL)
- sp_add_jobserver(Transact-SQL)
- sp_apply_job_to_targets(Transact-SQL)
- sp_delete_job(Transact-SQL)
- sp_delete_jobserver(Transact-SQL)
- sp_remove_job_from_targets(Transact-SQL)
- sp_help_job(Transact-SQL)
- sp_help_jobstep(Transact-SQL)
- sp_update_job(Transact-SQL)