Gestione di più passaggi di processoHandle Multiple Job Steps

Se il processo è costituito da più passaggi, è necessario specificare l'ordine di esecuzione dei passaggi.If your job has more than one job step, you must specify the order in which the job steps run. Questa caratteristica è nota come controllo di flusso.This is called control of flow. È possibile aggiungere nuovi passaggi di processo e modificare il flusso dei passaggi esistenti in qualsiasi momento. Le modifiche verranno applicate alla successiva esecuzione del processo.You can add new job steps and rearrange the flow of job steps at any time; the changes take effect the next time the job is run. Nella figura riportata di seguito è illustrato il controllo di flusso relativo a un processo di backup del database.This illustration shows the control of flow for a database backup job.

Controllo di flusso dei passaggi di processi di SQL Server AgentSQL Server Agent job steps control of flow

Il primo passaggio è rappresentato dal backup del database.The first step is Backup Database. Se questo passaggio non viene completato, SQL ServerSQL Server Agent segnala l'errore all'operatore specificato per la ricezione di notifiche.If this step fails, SQL ServerSQL Server Agent reports failure to the operator who is defined to receive notification. Se invece il backup del database viene completamente, il processo procede con il passaggio successivo, ovvero la ripulitura dei dati dei clienti.If the Backup Database step succeeds, the job proceeds to the next step, "Scrub" Customer Data. Se questo passaggio non viene eseguito correttamente, SQL ServerSQL Server Agent passa al ripristino del database.If this step fails, SQL ServerSQL Server Agent skips forward to Restore Database. Se invece la ripulitura dei dati dei clienti viene completata, il processo procede con il passaggio successivo, ovvero l'aggiornamento delle statistiche, e così via fino al passaggio finale che può essere la segnalazione dell'avvenuto completamento o della mancata esecuzione.If "Scrub" Customer Data succeeds, the job proceeds to the next step, Update Statistics, and so on, until the final step either results in Report Success or Report Failure.

È necessario definire un'azione di controllo del flusso in corrispondenza dell'esecuzione o della mancata esecuzione di ogni passaggio di processo.You define a control-of-flow action for the success and failure of each job step. È inoltre necessario specificare un'operazione da eseguire sia in caso di esecuzione che di mancata esecuzione di un passaggio di processo.You must specify an action to be taken when a job step succeeds and an action to be taken when a job step fails. È infine possibile definire il numero di tentativi di ripetizione di un passaggio di processo non eseguito correttamente, nonché l'intervallo tra i tentativi.You can also define the number of retry attempts for failed job steps and the interval between the retry attempts.

Nota

Quando si utilizza l'interfaccia utente grafica di SQL ServerSQL Server Agent e si eliminano uno o più passaggi da un processo composto da più passaggi, tutti i passaggi del processo vengono rimossi e quindi vengono aggiunti nuovamente i passaggi restanti con i riferimenti corretti in caso di esito positivo o negativo.When you use the SQL ServerSQL Server Agent graphical user interface (GUI) and delete one or more steps from a multistep job, the GUI removes all job steps and then adds the remaining steps back with the correct on-success or on-failure references. Ad esempio, si supponga di eseguire un processo con cinque passaggi e che il primo passaggio sia configurato in modo da rimandare direttamente al passaggio 4 se completato correttamente.For example, suppose you have a job with five steps, and the first step is configured to jump to step 4 if it completes successfully. Se si utilizza l'interfaccia utente grafica e si elimina il passaggio 3, vengono rimossi tutti i passaggi per questo processo e vengono aggiunti i quattro passaggi restanti (1, 2, 4 e 5) con i riferimenti corretti.If you delete step 3, the GUI removes all steps for this job and adds the remaining four steps (1, 2, 4, and 5) with corrected references. In questo caso, il riferimento nel passaggio 1 verrebbe configurato per rimandare al passaggio 3 se il passaggio 1 viene completato correttamente.In this case, the reference in step 1 would be reconfigured to jump to step 3 if step 1 completes successfully.

I passaggi di processo devono essere autonomi.Job steps must be self-contained. Tra un passaggio di processo e l'altro non è pertanto consentito il trasferimento di valori booleani, dati o valori numerici.That is, a job cannot pass Boolean values, data, or numeric values between job steps. È tuttavia possibile passare valori da un passaggio di processo Transact-SQLTransact-SQL a un altro utilizzando tabelle permanenti o tabelle temporanee globali.You can, however, pass values from one Transact-SQLTransact-SQL job step to another by using permanent tables or global temporary tables. In particolare è possibile utilizzare file per passare valori di passaggi di processo che eseguono programmi eseguibili da un passaggio di processo a un altro.You can pass values from job steps that run executable programs from one job step to another job step by using files. Ad esempio, l'eseguibile eseguito da un passaggio di processo scrive in un file, mentre quello eseguito da un passaggio di processo successivo legge il file.For example, the executable run by one job step writes a file, and the executable run by a subsequent job step reads the file.

Nota

Se si creano passaggi di processo ciclici (al passaggio 1 segue il passaggio 2, quindi dal passaggio 2 si torna al passaggio 1) e il processo viene creato tramite SQL Server Management StudioSQL Server Management Studio, viene visualizzato un messaggio di avviso.If you create looping job steps (job step 1 is followed by job step 2, then job step 2 returns to job step 1), a warning message appears when the job is created using SQL Server Management StudioSQL Server Management Studio.

SQL ServerSQL Server Agent registra i dati relativi al processo e ai passaggi di processo nella cronologia del processo. Agent records job and job step information in the job history.

Vedere ancheSee Also

sp_add_jobsp_add_job
sysjobhistorysysjobhistory
sysjobs (Transact-SQL)sysjobs (Transact-SQL)
sysjobstepssysjobsteps
Implementazione di processiImplement Jobs
Gestire passaggi di processoManage Job Steps