sp_update_jobstep(Transact-SQL)
적용 대상: SQL Server Azure SQL Managed Instance
SQL Server 에이전트 서비스에서 자동화된 작업을 수행하는 데 사용되는 작업의 단계 설정을 변경합니다.
구문
sp_update_jobstep
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
, [ @step_id = ] step_id
[ , [ @step_name = ] N'step_name' ]
[ , [ @subsystem = ] N'subsystem' ]
[ , [ @command = ] N'command' ]
[ , [ @additional_parameters = ] N'additional_parameters' ]
[ , [ @cmdexec_success_code = ] cmdexec_success_code ]
[ , [ @on_success_action = ] on_success_action ]
[ , [ @on_success_step_id = ] on_success_step_id ]
[ , [ @on_fail_action = ] on_fail_action ]
[ , [ @on_fail_step_id = ] on_fail_step_id ]
[ , [ @server = ] N'server' ]
[ , [ @database_name = ] N'database_name' ]
[ , [ @database_user_name = ] N'database_user_name' ]
[ , [ @retry_attempts = ] retry_attempts ]
[ , [ @retry_interval = ] retry_interval ]
[ , [ @os_run_priority = ] os_run_priority ]
[ , [ @output_file_name = ] N'output_file_name' ]
[ , [ @flags = ] flags ]
[ , [ @proxy_id = ] proxy_id ]
[ , [ @proxy_name = ] N'proxy_name' ]
[ ; ]
인수
[ @job_id = ] 'job_id'
단계가 속한 작업의 ID 번호입니다. @job_id 기본값NULL
인 uniqueidentifier입니다.
@job_id 또는 @job_name 지정해야 하지만 둘 다 지정할 수는 없습니다.
[ @job_name = ] N'job_name'
단계가 속한 작업의 이름입니다. @job_name sysname이며 기본값은 .입니다NULL
.
@job_id 또는 @job_name 지정해야 하지만 둘 다 지정할 수는 없습니다.
[ @step_id = ] step_id
수정할 작업 단계의 ID입니다. @step_id 기본값이 없는 int입니다. 이 번호는 변경할 수 없습니다.
[ @step_name = ] N'step_name'
단계의 새 이름입니다. @step_name 기본값NULL
인 sysname입니다.
[ @subsystem = ] N'subsystem'
SQL Server 에이전트 @command 실행하는 데 사용하는 하위 시스템입니다. @subsystem 기본값NULL
인 nvarchar(40)입니다.
[ @command = ] N'command'
@subsystem 통해 실행할 명령입니다. @command 기본값NULL
인 nvarchar(max)입니다.
[ @additional_parameters = ] N'additional_parameters'
정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
[ @cmdexec_success_code = ] cmdexec_success_code
명령이 성공적으로 실행되었음을 나타내기 위해 CmdExec 하위 시스템 명령에서 반환된 값입니다. @cmdexec_success_code 기본값NULL
인 int입니다.
[ @on_success_action = ] on_success_action
단계가 성공하면 수행할 작업입니다. @on_success_action 기본값NULL
인 tinyint이며 이러한 값 중 하나일 수 있습니다.
값 | 설명(동작) |
---|---|
1 |
성공으로 종료 |
2 |
실패로 종료 |
3 |
다음 단계로 이동 |
4 |
단계 @on_success_step_id |
[ @on_success_step_id = ] on_success_step_id
단계가 성공하고 @on_success_action 경우 실행할 이 작업의 단계 ID 번호입니다 4
. @on_success_step_id 기본값NULL
인 int입니다.
[ @on_fail_action = ] on_fail_action
단계가 실패할 경우 수행할 작업입니다. @on_fail_action tinyint이며 이러한 값 중 하나를 가질 수 있습니다.
값 | 설명(동작) |
---|---|
1 |
성공으로 종료 |
2 |
실패로 종료 |
3 |
다음 단계로 이동 |
4 |
단계 @on_fail_step_id |
[ @on_fail_step_id = ] on_fail_step_id
단계가 실패하고 @on_fail_action 경우 실행할 이 작업의 단계 ID 번호입니다 4
. @on_fail_step_id 기본값NULL
인 int입니다.
[ @server = ] N'server'
정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
[ @database_name = ] N'database_name'
Transact-SQL 단계를 실행할 데이터베이스의 이름입니다. @database_name sysname이며 기본값은 .입니다NULL
. 대괄호([]
)로 묶인 이름은 허용되지 않습니다.
[ @database_user_name = ] N'database_user_name'
Transact-SQL 단계를 실행할 때 사용할 데이터베이스 사용자의 이름입니다. @database_user_name sysname이며 기본값은 .입니다NULL
.
[ @retry_attempts = ] retry_attempts
이 단계가 실패할 경우에 재시도하는 횟수입니다. @retry_attempts 기본값NULL
인 int입니다.
[ @retry_interval = ] retry_interval
재시도 간격(분)입니다. @retry_interval 기본값NULL
인 int입니다.
[ @os_run_priority = ] os_run_priority
정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
[ @output_file_name = ] N'output_file_name'
이 단계의 출력이 저장되는 파일의 이름입니다. @output_file_name 기본값NULL
인 nvarchar(200)입니다. 이 매개 변수는 Transact-SQL 또는 CmdExec 하위 시스템에 실행되는 명령에서만 유효합니다.
@output_file_name 다시 설정하려면 @output_file_name 빈 문자열 또는 빈 문자 문자열로 설정해야 하지만 함수를 CHAR(32)
사용할 수는 NULL
없습니다.
예를 들어 다음과 같이 이 인수를 빈 문자열로 설정합니다.
@output_file_name = ' '
[ @flags = ] flags
동작을 제어하는 옵션입니다. @flags 기본값NULL
인 int입니다.
값 | 설명 |
---|---|
0 (기본값) |
출력 파일 덮어쓰기 |
2 |
출력 파일에 추가 |
4 |
Transact-SQL 작업 단계 출력을 단계 기록에 쓰기 |
8 |
테이블에 로그를 씁니다(기존 기록을 덮어씀). |
16 |
테이블에 로그 작성(기존 기록에 추가) |
[ @proxy_id = ] proxy_id
작업 단계가 실행되는 프록시의 ID 번호입니다. @proxy_id int이며 기본값은 .입니다NULL
. @proxy_id 지정되지 않고 @proxy_name 지정되지 않고 @database_user_name 지정되지 않은 경우 작업 단계는 SQL Server 에이전트 대한 서비스 계정으로 실행됩니다.
[ @proxy_name = ] N'proxy_name'
작업 단계가 실행되는 프록시의 이름입니다. @proxy_name sysname이며 기본값은 .입니다NULL
. @proxy_id 지정되지 않고 @proxy_name 지정되지 않고 @database_user_name 지정되지 않은 경우 작업 단계는 SQL Server 에이전트 대한 서비스 계정으로 실행됩니다.
반환 코드 값
0
(성공) 또는 1
(실패).
설명
sp_update_jobstep
는 데이터베이스에서 msdb
실행되어야 합니다.
작업 단계를 업데이트하면 작업 버전 번호가 증가합니다.
이 저장 프로시저는 Azure SQL Database용 Azure Elastic Jobs 서비스에 대한 유사한 개체와 이름을 sp_update_jobstep
공유합니다. 탄력적 작업 버전에 대한 자세한 내용은 jobs.sp_update_jobstep(Azure 탄력적 작업)를 참조하세요.
사용 권한
이 저장 프로시저는 db_owner 역할이 소유합니다. 모든 사용자에 대한 사용 권한을 부여 EXECUTE
할 수 있지만 SQL Server 업그레이드 중에 이러한 권한이 재정의될 수 있습니다.
다른 사용자에게는 데이터베이스에서 다음 SQL Server 에이전트 고정 데이터베이스 역할 msdb
중 하나가 부여되어야 합니다.
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
이러한 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하세요.
sysadmin의 멤버만 다른 사용자가 소유한 작업의 작업 단계를 업데이트할 수 있습니다.
작업 단계에서 프록시에 액세스해야 할 경우 작업 단계를 만든 사람에게 작업 단계의 프록시에 대한 액세스 권한이 있어야 합니다. Transact-SQL을 제외한 모든 하위 시스템에는 프록시 계정이 필요합니다. sysadmin의 멤버는 모든 프록시에 액세스할 수 있으며 프록시에 SQL Server 에이전트 서비스 계정을 사용할 수 있습니다.
예제
다음 예에서는 Weekly Sales Data Backup
작업의 첫 번째 단계에 대한 재시도 횟수를 변경합니다. 이 예제를 실행한 후 재시도 횟수는 다음과 같습니다 10
.
USE msdb;
GO
EXEC dbo.sp_update_jobstep
@job_name = N'Weekly Sales Data Backup',
@step_id = 1,
@retry_attempts = 10;
GO