Condividi tramite


jobs.sp_update_jobstep (processi elastici di Azure) (Transact-SQL)

Si applica a: Database SQL di Azure

Modifica un passaggio di processo in un processo esistente nel servizio Processi elastici di Azure per database SQL di Azure. Usare jobs.sp_add_jobstep per aggiungere passaggi di processo a un processo.

Questa stored procedure condivide il nome di sp_update_jobstep con un oggetto simile in SQL Server per il servizio SQL Server Agent. Per informazioni sulla versione di SQL Server Agent, vedere sp_update_jobstep.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

[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 ]

Argomenti

@job_name

Nome del processo a cui appartiene il passaggio. job_name è nvarchar(128).

@step_id

Numero di identificazione del passaggio del processo da modificare. È necessario specificare step_id o step_name . step_id è un valore int.

@step_name

Nome del passaggio da modificare. È necessario specificare step_id o step_name . step_name è nvarchar(128).

@new_id

Nuovo numero di identificazione della sequenza per il passaggio del processo. I numeri di identificazione dei passaggi iniziano da 1 e vengono incrementati senza interruzioni. Se un passaggio viene riordinato, gli altri passaggi verranno rinumerati automaticamente.

@new_name

Nuovo nome del passaggio. new_name è nvarchar(128).

@command_type

Tipo di comando eseguito da questo passaggio del processo. command_type è nvarchar(50), con un valore predefinito , TSqlovvero il valore del parametro @command_type è uno script T-SQL.

Se specificato, il valore deve essere TSql.

@command_source

Tipo di posizione in cui è archiviato il comando. command_source è nvarchar(50), con un valore predefinito , Inlineovvero il valore del parametro @command è il testo letterale del comando.

Se specificato, il valore deve essere Inline.

@command

Script T-SQL valido che deve essere eseguito da questo passaggio del processo. il comando è nvarchar(max), con un valore predefinito .NULL

@credential_name

Nome delle credenziali con ambito database archiviate in questo database di controllo del processo utilizzato per connettersi a ognuno dei database di destinazione all'interno del gruppo di destinazione quando questo passaggio viene eseguito. credential_name è nvarchar(128).

Quando si usa l'autenticazione di Microsoft Entra (in precedenza Azure Active Directory), omettere il parametro @credential_name , che deve essere fornito solo quando si usano credenziali con ambito database.

@target_group_name

Nome del gruppo di destinazione contenente i database di destinazione su cui verrà eseguito il passaggio del processo. target_group_name è nvarchar(128).

@initial_retry_interval_seconds

Ritardo prima del primo tentativo, se il passaggio del processo non riesce durante il tentativo di esecuzione iniziale. initial_retry_interval_seconds è int, con il valore predefinito 1.

@maximum_retry_interval_seconds

Ritardo massimo tra i tentativi. Se il ritardo tra i tentativi aumenta di dimensioni maggiori rispetto a questo valore, viene invece limitato a questo valore. maximum_retry_interval_seconds è int, con il valore predefinito 120.

@retry_interval_backoff_multiplier

Moltiplicatore da applicare al ritardo tra i tentativi se più tentativi di esecuzione del passaggio del processo hanno esito negativo. Ad esempio, se il primo tentativo ha un ritardo di 5 secondi e il moltiplicatore di backoff è 2.0, il secondo tentativo avrà un ritardo di 10 e il terzo un ritardo di 20 secondi. retry_interval_backoff_multiplier è il tipo di dati reale, con valore predefinito 2,0.

@retry_attempts

Numero di tentativi di esecuzione se il tentativo iniziale non riesce. Ad esempio, se il valore retry_attempts è 10, verranno eseguiti 1 tentativo iniziale e 10 tentativi, dando un totale di 11 tentativi. Se il tentativo di ripetizione finale ha esito negativo, l'esecuzione del processo terminerà con un lifecycle oggetto registrato Failed in jobs.job_executions. retry_attempts è int, con il valore predefinito 10.

@step_timeout_seconds

Tempo massimo consentito per l'esecuzione del passaggio. Se questa volta viene superata, l'esecuzione del processo terminerà con un lifecycle di TimedOut registrato in jobs.job_executions. step_timeout_seconds è int, con valore predefinito di 43.200 secondi (12 ore).

@output_type

In caso contrario NULL, il tipo di destinazione in cui viene scritto il primo set di risultati del comando. Per reimpostare il valore di output_type su NULL, impostare il valore del parametro su '' (stringa vuota). output_type è nvarchar(50), con il valore predefinito NULL.

Se specificato, il valore deve essere SqlDatabase.

@output_credential_name

Se non NULLè , il nome della credenziale con ambito database utilizzata per connettersi al database di destinazione di output. Deve essere specificato se output_type è uguale a SqlDatabase. Per reimpostare il valore di output_credential_name su NULL, impostare il valore del parametro su '' (stringa vuota). output_credential_name è nvarchar(128), con un valore predefinito .NULL

Quando si usa l'autenticazione di Microsoft Entra (in precedenza Azure Active Directory), omettere il parametro @output_credential_name , che deve essere fornito solo quando si usano credenziali con ambito database.

@output_server_name

In caso contrario NULL, il nome DNS completo del server che contiene il database di destinazione di output, @output_server_name = 'server1.database.windows.net'ad esempio . Deve essere specificato se output_type è uguale a SqlDatabase. Per reimpostare il valore di output_server_name su NULL, impostare il valore di questo parametro su '' (stringa vuota). output_server_name è nvarchar(256), con il valore predefinito NULL.

@output_database_name

Se non NULLè , il nome del database che contiene la tabella di destinazione di output. Deve essere specificato se output_type è uguale a SqlDatabase. Per reimpostare il valore di output_database_name su NULL, impostare il valore di questo parametro su '' (stringa vuota). output_database_name è nvarchar(128), con il valore predefinito NULL.

@output_schema_name

Se non NULLè , il nome dello schema SQL che contiene la tabella di destinazione di output. Se output_type è uguale SqlDatabasea , il valore predefinito è dbo . Per reimpostare il valore di output_schema_name su NULL, impostare il valore del parametro su '' (stringa vuota). output_schema_name è nvarchar(128).

@output_table_name

In caso contrario NULL, il nome della tabella in cui verrà scritto il primo set di risultati del comando. Se la tabella non esiste già, verrà creata in base allo schema del set di risultati restituito. Deve essere specificato se output_type è uguale a SqlDatabase. Per reimpostare il valore di output_server_name su NULL, impostare il valore di questo parametro su '' (stringa vuota). output_table_name è nvarchar(128), con un valore predefinito .NULL

Se si specifica un output_table_name, alle credenziali dell'agente di processo o con ambito database devono essere concesse le autorizzazioni necessarie per i dati CREATE TABLE e INSERT nella tabella.

@job_version PRODOTTO

Parametro di output che verrà assegnato al nuovo numero di versione del processo. job_version è int.

@max_parallelism PRODOTTO

Livello massimo di parallelismo per ogni pool elastico. Se impostato, il passaggio del processo sarà limitato in modo da eseguire solo il numero massimo di database per ogni pool elastico. Questo vale per ogni pool elastico incluso direttamente nel gruppo di destinazione o per i pool elastici all'interno di un server incluso nel gruppo di destinazione. Per reimpostare il valore di max_parallelism su NULL, impostare il valore di questo parametro su -1. max_parallelism è int.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

Le eventuali esecuzioni in corso del processo non saranno interessate. In caso jobs.sp_update_jobstep di esito positivo, il numero di versione del processo viene incrementato. Alla successiva esecuzione del processo, verrà usata la nuova versione.

Autorizzazioni

Per impostazione predefinita, questa stored procedure può essere eseguita dai membri del ruolo predefinito del server sysadmin . Solo i membri del ruolo sysadmin possono usare questa stored procedure per modificare gli attributi dei processi di proprietà di altri utenti.

Esempi

Comando di aggiornamento di un passaggio di processo elastico

Questo esempio aggiorna il comando T-SQL di un passaggio di processo elastico esistente. Lo script T-SQL aggiunge un passaggio di processo per creare una tabella, se non esiste.

--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';