다음을 통해 공유


jobs.sp_update_jobstep(Azure 탄력적 작업)(Transact-SQL)

적용 대상:Azure SQL Database

Azure SQL Database용 Azure Elastic Jobs 서비스의 기존 작업에서 작업 단계를 수정합니다. jobs.sp_add_jobstep 사용하여 작업에 작업 단계를 추가합니다.

이 저장 프로시저는 SQL Server 에이전트 서비스의 SQL Server에서 유사한 개체와 이름을 sp_update_jobstep 공유합니다. SQL Server 에이전트 버전에 대한 자세한 내용은 sp_update_jobstep(Transact-SQL)를 참조하세요.

Transact-SQL 구문 표기 규칙

구문

[jobs].sp_update_jobstep [ @job_name = ] 'job_name'
     [ , [ @step_id = ] step_id ]
     [ , [ @step_name = ] 'step_name' ]
     [ , [ @new_id = ] new_id ]
     [ , [ @new_name = ] 'new_name' ]
     [ , [ @command_type = ] 'command_type' ]
     [ , [ @command_source = ] 'command_source' ]  
     , [ @command = ] 'command'
     [, [ @credential_name = ] 'credential_name' ]
     , [ @target_group_name = ] 'target_group_name'
     [ , [ @initial_retry_interval_seconds = ] initial_retry_interval_seconds ]
     [ , [ @maximum_retry_interval_seconds = ] maximum_retry_interval_seconds ]
     [ , [ @retry_interval_backoff_multiplier = ]retry_interval_backoff_multiplier ]
     [ , [ @retry_attempts = ] retry_attempts ]
     [ , [ @step_timeout_seconds = ] step_timeout_seconds ]
     [ , [ @output_type = ] 'output_type' ]
     [ , [ @output_credential_name = ] 'output_credential_name' ]
     [ , [ @output_server_name = ] 'output_server_name' ]
     [ , [ @output_database_name = ] 'output_database_name' ]
     [ , [ @output_schema_name = ] 'output_schema_name' ]
     [ , [ @output_table_name = ] 'output_table_name' ]
     [ , [ @job_version = ] job_version OUTPUT ]
     [ , [ @max_parallelism = ] max_parallelism ]

인수

@job_name

단계가 속한 작업의 이름입니다. job_name nvarchar(128)입니다.

@step_id

수정할 작업 단계의 ID입니다. step_id 또는 step_name 지정해야 합니다. step_id int입니다.

@step_name

수정할 단계의 이름입니다. step_id 또는 step_name 지정해야 합니다. step_name nvarchar(128)입니다.

@new_id

작업 단계에 대한 새 시퀀스 ID 번호입니다. 단계 ID 번호는 1에서 시작하여 간격 없이 증가합니다. 단계의 번호가 변경되면 다른 단계의 번호가 자동으로 다시 매겨집니다.

@new_name

단계의 새 이름입니다. new_name nvarchar(128)입니다.

@command_type

이 작업 단계에서 실행되는 명령의 형식입니다. command_type nvarchar(50)이며 기본값TSql은 @command_type 매개 변수의 값이 T-SQL 스크립트임을 의미합니다.

지정한 경우 값은 .이어야 TSql합니다.

@command_source

명령이 저장된 위치의 유형입니다. command_source 기본값Inline인 nvarchar(50)입니다. 즉, @command 매개 변수의 값이 명령의 리터럴 텍스트입니다.

지정한 경우 값은 .이어야 Inline합니다.

@command

이 작업 단계에서 실행할 유효한 T-SQL 스크립트입니다. 명령은 nvarchar(max)이며 기본값은 .입니다 NULL.

@credential_name

이 단계가 실행될 때 대상 그룹 내의 각 대상 데이터베이스에 연결하는 데 사용되는 이 작업 제어 데이터베이스에 저장된 데이터베이스 범위 자격 증명의 이름입니다. credential_name nvarchar(128)입니다.

Microsoft Entra 인증(이전의 Azure Active Directory)을 사용하는 경우 데이터베이스 범위 자격 증명을 사용하는 경우에만 제공해야 하는 @credential_name 매개 변수를 생략합니다.

@target_group_name

작업 단계가 실행될 대상 데이터베이스를 포함하는 대상 그룹의 이름입니다. target_group_name nvarchar(128)입니다.

@initial_retry_interval_seconds

초기 실행 시도에서 작업 단계가 실패하는 경우 첫 번째 재시도가 시작될 때까지의 지연 시간입니다. initial_retry_interval_seconds 기본값이 1인 int입니다.

@maximum_retry_interval_seconds

재시도 간의 최대 지연 시간입니다. 재시도 간의 지연 시간이 이 값보다 커지면 대신 이 값으로 제한됩니다. maximum_retry_interval_seconds int이며 기본값은 120입니다.

@retry_interval_backoff_multiplier

여러 작업 단계 실행 시도가 실패하는 경우 재시도 지연 시간에 적용할 승수입니다. 예를 들어 첫 번째 재시도의 지연 시간이 5초이고 백오프 승수가 2.0인 경우 두 번째 재시도의 지연 시간은 10초, 세 번째 재시도의 지연 시간은 20초가 됩니다. retry_interval_backoff_multiplier 기본값이 2.0인 실제 데이터 형식입니다.

@retry_attempts

초기 시도가 실패하는 경우 실행을 다시 시도하는 횟수입니다. 예를 들어 retry_attempts 값이 10이면 초기 시도 1회와 재시도 10회가 있으며 총 11번의 시도가 있습니다. 최종 재시도 시도가 실패하면 jobs.job_executions 기록된 작업 실행이 종료 lifecycleFailed 됩니다. retry_attempts 기본값이 10인 int입니다.

@step_timeout_seconds

단계를 실행하는 데 허용되는 최대 시간입니다. 이 시간을 초과하면 jobs.job_executions 기록된 작업 실행이 종료 lifecycleTimedOut 됩니다. step_timeout_seconds 기본값이 43,200초(12시간)인 int입니다.

@output_type

그렇지 않은 NULL경우 명령의 첫 번째 결과 집합이 기록되는 대상의 형식입니다. output_type 값을 다시 NULL설정하려면 이 매개 변수의 값을 ''(빈 문자열)로 설정합니다. output_type 기본값NULL인 nvarchar(50)입니다.

지정한 경우 값은 .이어야 SqlDatabase합니다.

@output_credential_name

그렇지 않은 NULL경우 출력 대상 데이터베이스에 연결하는 데 사용되는 데이터베이스 범위 자격 증명의 이름입니다. output_typeSqlDatabase으면 지정해야 합니다. output_credential_name 값을 다시 NULL로 다시 설정하려면 이 매개 변수의 값을 ''(빈 문자열)로 설정합니다. output_credential_name nvarchar(128)이며 기본값NULL은 .입니다.

Microsoft Entra 인증(이전의 Azure Active Directory)을 사용하는 경우 데이터베이스 범위 자격 증명을 사용하는 경우에만 제공해야 하는 @output_credential_name 매개 변수를 생략합니다.

@output_server_name

그렇지 않은 NULL경우 출력 대상 데이터베이스를 포함하는 서버의 정규화된 DNS 이름입니다. 예를 들면 다음과 같습니다 @output_server_name = 'server1.database.windows.net'. output_typeSqlDatabase으면 지정해야 합니다. output_server_name 값을 다시 NULL설정하려면 이 매개 변수의 값을 ''(빈 문자열)로 설정합니다. output_server_name 기본값NULL인 nvarchar(256)입니다.

@output_database_name

그렇지 않은 NULL경우 출력 대상 테이블을 포함하는 데이터베이스의 이름입니다. output_typeSqlDatabase으면 지정해야 합니다. output_database_name 값을 다시 NULL설정하려면 이 매개 변수의 값을 ''(빈 문자열)로 설정합니다. output_database_name 기본값NULL인 nvarchar(128)입니다.

@output_schema_name

그렇지 않은 NULL경우 출력 대상 테이블을 포함하는 SQL 스키마의 이름입니다. output_type 같으면 기본값은 .입니다dbo.SqlDatabase output_schema_name 값을 다시 NULL설정하려면 이 매개 변수의 값을 ''(빈 문자열)로 설정합니다. output_schema_name nvarchar(128)입니다.

@output_table_name

그렇지 않은 NULL경우 명령의 첫 번째 결과 집합이 기록될 테이블의 이름입니다. 테이블이 아직 없으면 반환되는 결과 집합의 스키마를 기반으로 하여 만들어집니다. output_typeSqlDatabase으면 지정해야 합니다. output_server_name 값을 다시 NULL설정하려면 이 매개 변수의 값을 ''(빈 문자열)로 설정합니다. output_table_name nvarchar(128)이며 기본값NULL은 .입니다.

output_table_name 지정하는 경우 작업 에이전트 UMI 또는 데이터베이스 범위 자격 증명에 테이블에 대한 CREATE TABLE 및 INSERT 데이터에 필요한 권한이 부여되어야 합니다.

@job_version 출력

새 작업 버전 번호가 할당될 출력 매개 변수입니다. job_version int입니다.

@max_parallelism 출력

탄력적 풀당 최대 병렬 처리 수준입니다. 설정되는 경우 작업 단계가 탄력적 풀당 최댓값 이하의 여러 데이터베이스에서만 실행되도록 제한됩니다. 이는 대상 그룹에 직접 포함된 각 탄력적 풀 또는 대상 그룹에 포함된 서버 내에 있는 탄력적 풀에 적용됩니다. max_parallelism 값을 다시 설정NULL하려면 이 매개 변수의 값을 -1.로 설정합니다. max_parallelism int입니다.

반환 코드 값

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

설명

진행 중인 모든 작업 실행은 영향을 받지 않습니다. 성공하면 jobs.sp_update_jobstep 작업의 버전 번호가 증가합니다. 다음에 작업이 실행될 때 새 버전이 사용됩니다.

사용 권한

sysadmin 고정 서버 역할의 멤버는 기본적으로 이 저장 프로시저를 실행할 수 있습니다. sysadmin의 멤버만 이 저장 프로시저를 사용하여 다른 사용자가 소유한 작업의 특성을 편집할 수 있습니다.

예제

탄력적 작업 단계의 명령 업데이트

이 샘플에서는 기존 탄력적 작업 단계의 T-SQL 명령을 업데이트합니다. T-SQL 스크립트는 테이블이 없는 경우 테이블을 만드는 작업 단계를 추가합니다.

--Connect to the job database specified when creating the elastic job agent

-- Add job step to create a table if it does not exist
EXEC jobs.sp_update_jobstep @job_name = 'CreateTableTest',
@command = N'IF NOT EXISTS (SELECT * FROM sys.tables WHERE object_id = object_id(''Test''))
CREATE TABLE [dbo].[Test]([TestId] [int] NOT NULL);',
@target_group_name = 'PoolGroup';