sp_update_jobstep(Transact-SQL)
자동 동작을 수행하기 위해 사용되는 작업의 단계에 대한 설정을 변경합니다.
구문
sp_update_jobstep
{ [@job_id =] job_id
| [@job_name =] 'job_name' } ,
[@step_id =] step_id
[ , [@step_name =] 'step_name' ]
[ , [@subsystem =] 'subsystem' ]
[ , [@command =] 'command' ]
[ , [@additional_parameters =] 'parameters' ]
[ , [@cmdexec_success_code =] success_code ]
[ , [@on_success_action =] success_action ]
[ , [@on_success_step_id =] success_step_id ]
[ , [@on_fail_action =] fail_action ]
[ , [@on_fail_step_id =] fail_step_id ]
[ , [@server =] 'server' ]
[ , [@database_name =] 'database' ]
[ , [@database_user_name =] 'user' ]
[ , [@retry_attempts =] retry_attempts ]
[ , [@retry_interval =] retry_interval ]
[ , [@os_run_priority =] run_priority ]
[ , [@output_file_name =] 'file_name' ]
[ , [@flags =] flags ]
[ , { [ @proxy_id = ] proxy_id
| [ @proxy_name = ] 'proxy_name' }
인수
[ @job_id =] job_id
단계가 속한 작업의 ID입니다. job_id는 uniqueidentifier이며 기본값은 NULL입니다. job_id 또는 job_name 중 하나를 지정해야 하며 둘 다를 지정할 수는 없습니다.[ @job_name =] 'job_name'
단계가 속한 작업의 이름입니다. job_name은 sysname이며 기본값은 NULL입니다. job_id 또는 job_name 중 하나를 지정해야 하며 둘 다를 지정할 수는 없습니다.[ @step_id =] step_id
수정할 작업 단계의 ID입니다. 이 번호는 변경할 수 없습니다. step_id는 int이며 기본값은 없습니다.[ @step_name =] 'step_name'
단계의 새 이름입니다. step_name은 sysname이며 기본값은 NULL입니다.[ @subsystem =] 'subsystem'
Microsoft SQL Server 에이전트에서 command를 실행하기 위해 사용하는 하위 시스템입니다. subsystem은 nvarchar(40)이며 기본값은 NULL입니다.[ @command =] 'command'
subsystem을 통해 실행할 명령입니다. command는 nvarchar(max)이며 기본값은 NULL입니다.[ @additional_parameters =] 'parameters'
정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.[ @cmdexec_success_code =] success_code
CmdExec 하위 시스템 명령에 의해 반환되는 값으로, command가 성공적으로 실행되었음을 나타냅니다. success_code는 int이며 기본값은 NULL입니다.[ @on_success_action =] success_action
단계가 성공할 경우 수행할 동작입니다. success_action은 tinyint이며 기본값은 NULL이지만 다음 값 중 하나를 사용할 수 있습니다.값
설명(동작)
1
성공적으로 종료
2
실패로 종료
3
다음 단계로 이동
4
success_step_id. 단계로 이동
[ @on_success_step_id =] success_step_id
단계가 성공하고 success_action이 4인 경우 해당 작업에서 실행할 단계의 ID입니다. success_step_id는 int이며 기본값은 NULL입니다.[ @on_fail_action =] fail_action
단계가 실패할 경우 수행할 동작입니다. fail_action은 tinyint이며 기본값은 NULL이지만 다음 값 중 하나를 사용할 수 있습니다.값
설명(동작)
1
성공적으로 종료
2
실패로 종료
3
다음 단계로 이동
4
fail_step_id 단계로 이동
[ @on_fail_step_id =] fail_step_id
단계가 실패하고 fail_action이 4인 경우 해당 작업에서 실행할 단계의 ID입니다. fail_step_id는 int이며 기본값은 NULL입니다.[ @server = ] 'server'
정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.server는 nvarchar(128)이며 기본값은 NULL입니다.[ @database_name =] 'database'
Transact-SQL 단계를 실행할 데이터베이스의 이름입니다. database는 sysname입니다. 이름을 대괄호([ ])로 묶는 것은 허용되지 않습니다. 기본값은 NULL입니다.[ @database_user_name =] 'user'
Transact-SQL 단계를 실행할 때 사용할 사용자 계정의 이름입니다. user는 sysname이며 기본값은 NULL입니다.[ @retry_attempts =] retry_attempts
이 단계가 실패하면 사용할 재시도 횟수입니다. retry_attempts는 int이며 기본값은 NULL입니다.[ @retry_interval =] retry_interval
재시도 간의 시간(분)입니다. retry_interval은 int이며 기본값은 NULL입니다.[ @os_run_priority =] run_priority
정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.[ @output_file_name =] 'file_name'
이 단계의 출력이 저장되는 파일의 이름입니다. file_name은 nvarchar(200)이며 기본값은 NULL입니다. 이 매개 변수는 Transact-SQL 또는 CmdExec 하위 시스템에서 실행되는 명령과 함께 사용하는 경우에만 유효합니다.output_file_name을 다시 NULL로 설정하려면 output_file_name을 빈 문자열(' ') 또는 빈 문자의 문자열로 설정해야 하지만 CHAR(32) 함수를 사용할 수 없습니다. 예를 들어 다음과 같이 이 인수를 빈 문자열로 설정합니다.
@output_file_name = ' '
[ @flags =] flags
동작을 제어하는 옵션입니다. flags는 int이며 다음 값 중 하나를 사용할 수 있습니다.값
설명
0(기본값)
출력 파일을 덮어씁니다.
2
출력 파일에 추가합니다.
4
Transact-SQL 작업 단계 출력을 단계 기록에 씁니다.
8
테이블에 로그를 씁니다(기존 기록을 덮어씀).
16
테이블에 로그를 씁니다(기존 기록에 추가).
[ @proxy_id= ] proxy_id
작업 단계가 실행되는 프록시의 ID입니다. proxy_id는 int 유형이며 기본값은 NULL입니다. proxy_id, proxy_name 및 user_name을 모두 지정하지 않으면 작업 단계는 SQL Server 에이전트에 대한 서비스 계정으로 실행됩니다.[ @proxy_name= ] 'proxy_name'
작업 단계가 실행되는 프록시의 이름입니다. proxy_name은 sysname 유형이며 기본값은 NULL입니다. proxy_id, proxy_name 및 user_name을 모두 지정하지 않으면 작업 단계는 SQL Server 에이전트에 대한 서비스 계정으로 실행됩니다.
반환 코드 값
0(성공) 또는 1(실패)
주의
sp_update_jobstep은 msdb 데이터베이스에서 실행해야 합니다.
작업 단계를 업데이트하면 작업 버전 번호가 증가합니다.
사용 권한
기본적으로 sysadmin 고정 서버 역할의 멤버는 이 저장 프로시저를 실행할 수 있습니다. 다른 사용자는 msdb 데이터베이스의 다음 SQL Server 에이전트 고정 데이터베이스 역할 중 하나를 부여 받아야 합니다.
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