Gestire più passaggi di processo

Si applica a:SQL ServerIstanza gestita di SQL di Azure

Importante

In Istanza gestita di SQL di Azure sono attualmente supportate la maggior parte delle funzionalità di SQL Server Agent, ma non tutte. Per informazioni dettagliate, vedere Differenze T-SQL tra Istanza gestita di SQL di Azure e SQL Server.

Se il processo è costituito da più passaggi, è necessario specificare l'ordine di esecuzione dei passaggi. Questa funzionalità è detta controllo di flusso. È 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. Nella figura riportata di seguito è illustrato il controllo di flusso relativo a un processo di backup del database.

SQL Server Agent job steps control of flow

Il primo passaggio è rappresentato dal backup del database. Se questo passaggio non viene completato, SQL Server Agent segnala l'errore all'operatore specificato per la ricezione di notifiche. Se invece il backup del database viene completamente, il processo procede con il passaggio successivo, ovvero la ripulitura dei dati dei clienti. Se questo passaggio non viene eseguito correttamente, SQL Server Agent passa al ripristino del 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.

È necessario definire un'azione di controllo del flusso in corrispondenza dell'esecuzione o della mancata esecuzione di ogni passaggio di processo. È inoltre necessario specificare un'operazione da eseguire sia in caso di esecuzione che di mancata esecuzione di un passaggio di processo. È infine possibile definire il numero di tentativi di ripetizione di un passaggio di processo non eseguito correttamente, nonché l'intervallo tra i tentativi.

Nota

Quando si usa l'interfaccia utente grafica di SQL 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. 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. 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. In questo caso, il riferimento nel passaggio 1 verrebbe configurato per rimandare al passaggio 3 se il passaggio 1 viene completato correttamente.

I passaggi di processo devono essere autonomi. Tra un passaggio di processo e l'altro non è pertanto consentito il trasferimento di valori booleani, dati o valori numerici. È tuttavia possibile passare valori da un passaggio di processo Transact-SQL a un altro usando tabelle permanenti o tabelle temporanee globali. In particolare è possibile utilizzare file per passare valori di passaggi di processo che eseguono programmi eseguibili da un passaggio di processo a un altro. 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.

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 Studio, viene visualizzato un messaggio di avviso.

SQL Server Agent registra i dati relativi al processo e ai passaggi di processo nella cronologia del processo.

Vedi anche

sp_add_job
sysjobhistory
sysjobs (Transact-SQL)
sysjobsteps
Implementazione di processi
Gestire passaggi di processo