Gestire 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.

Un passaggio di processo è un'operazione eseguita dal processo in un database o in un server. Ogni processo deve essere composto da almeno un passaggio. I passaggi di processo possono essere costituiti dagli elementi seguenti:

  • Programmi eseguibili e comandi del sistema operativo.

  • Istruzioni Transact-SQL, incluse stored procedure e stored procedure estese.

  • Script di PowerShell.

  • Script Microsoft ActiveX.

  • Attività di replica.

  • Attività di Analysis Services.

  • Pacchetti di Integration Services.

Ogni passaggio di processo viene eseguito in un contesto di sicurezza specifico. Se tramite il passaggio di processo viene specificato un proxy, il passaggio viene eseguito nel contesto di sicurezza della credenziale per il proxy. Se non specifica un proxy, il passaggio del processo viene eseguito nel contesto dell'account del servizio di SQL Server Agent. Solo i membri del ruolo predefinito del server sysadmin possono creare processi in cui non venga specificato esplicitamente un proxy.

Poiché i passaggi di processo vengono eseguiti nel contesto di un utente specifico di Microsoft Windows, l'utente deve essere in possesso delle autorizzazioni e della configurazione necessarie per l'esecuzione del passaggio di processo. Se, ad esempio, si crea un processo che richiede una lettera di unità o un percorso UNC (Universal Naming Convention), i passaggi di processo possono essere eseguiti con l'account utente di Windows durante la verifica delle operazioni. L'utente di Windows per il passaggio di processo, tuttavia, deve inoltre disporre delle autorizzazioni richieste, delle configurazioni della lettera di unità o dell'accesso all'unità necessaria. In caso contrario, il passaggio di processo non verrà eseguito correttamente. Per evitare questo problema, assicurarsi che il proxy per ogni passaggio di processo disponga delle autorizzazioni necessarie per l'operazione eseguita dal passaggio. Per altre informazioni, vedere Sicurezza e protezione (Motore di database).

Log dei passaggi di processo

SQL Server Agent può scrivere output da alcuni passaggi di processo in un file del sistema operativo o nella tabella sysjobstepslogs del database msdb. I tipi di passaggi di processo seguenti consentono la scrittura dell'output in entrambe le destinazioni:

  • Programmi eseguibili e comandi del sistema operativo.

  • Istruzioni Transact-SQL.

  • Attività di Analysis Services.

Solo i passaggi di processo eseguiti dagli utenti membri del ruolo predefinito del server sysadmin possono scrivere l'output dei passaggi di processo nei file del sistema operativo. Se i passaggi di processo vengono eseguiti da utenti membri dei ruoli del database predefiniti SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole nel database msdb, l'output di questi passaggi di processo può essere scritto solo nella tabella sysjobstepslogs.

I log dei passaggi di processo vengono eliminati automaticamente quando vengono eliminati i processi o i passaggi di processo.

Nota

La registrazione delle attività di replica e dei passaggi di processo dei pacchetti di Integration Services viene gestita dal rispettivo sottosistema. Non è possibile usare SQL Server Agent per configurare la registrazione di questi tipi di passaggi di processo.

Utilizzo di programmi eseguibili e comandi del sistema operativo come passaggi di processo

I programmi eseguibili e i comandi del sistema operativo possono essere utilizzati come passaggi di processo. Questi file possono avere estensione bat, cmd, com o exe.

Quando si utilizza un programma eseguibile o un comando del sistema operativo come passaggio di processo, è necessario specificare gli elementi seguenti:

  • Il codice di uscita del processo, restituito se il comando ha esito positivo.

  • Comando da eseguire. Per eseguire un comando del sistema operativo, è necessario immettere solo il comando specifico. Per un programma esterno, è necessario immettere il nome del programma e gli argomenti del programma, ad esempio: C:\Programmi\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"

    Nota

    È necessario indicare il percorso completo del programma eseguibile se questo non è incluso in una directory specificata nel percorso di sistema o nel percorso per l'account utente con cui viene eseguito il passaggio di processo.

Passaggi di processo Transact-SQL

Quando si crea un passaggio di processo Transact-SQL è necessario:

  • Identificare il database in cui eseguire il processo.

  • Digitare l'istruzione Transact-SQL da eseguire. L'istruzione può chiamare una stored procedure o una stored procedure estesa.

In alternativa, è possibile aprire un file Transact-SQL esistente come comando per il passaggio di processo.

I passaggi di processo Transact-SQL non usano proxy di SQL Server Agent. Il passaggio di processo viene invece eseguito come proprietario del passaggio oppure come account del servizio di SQL Server Agent se il proprietario è un membro del ruolo predefinito del server sysadmin. I membri del ruolo predefinito del server sysadmin possono anche specificare che i passaggi di processo Transact-SQL vengano eseguiti nel contesto di un altro utente tramite il parametro database_user_name della stored procedure sp_add_jobstep. Per altre informazioni, vedere sp_add_jobstep (Transact-SQL).

Nota

Un singolo passaggio di processo Transact-SQL può contenere più batch. I passaggi di processo Transact-SQL possono contenere comandi GO incorporati.

Utilizzo di script di PowerShell come passaggi di processo

Quando si utilizza uno script di PowerShell per creare un passaggio di processo, come comando del passaggio è necessario specificare uno dei due elementi seguenti:

  • Il testo di uno script di PowerShell.

  • Un file script di PowerShell esistente da aprire.

Il sottosistema PowerShell di SQL Server Agent apre una sessione di PowerShell e carica gli snap-in SQL Server PowerShell. Lo script di PowerShell usato come comando del passaggio di processo può fare riferimento al provider e ai cmdlet di SQL Server PowerShell. Per altre informazioni sulla scrittura di script di PowerShell tramite gli snap-in SQL Server PowerShell, vedere SQL Server PowerShell.

Utilizzo di Script ActiveX come passaggi di processo

Importante

Il passaggio di processo di scripting ActiveX verrà rimosso da SQL Server Agent in una versione futura di Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Quando si crea un passaggio di processo con script ActiveX, è necessario eseguire le operazioni seguenti:

  • Identificare il linguaggio di script con cui scrivere il passaggio di processo.

  • Scrivere lo script ActiveX.

È inoltre possibile aprire un file di script ActiveX esistente come comando per il passaggio di processo. In alternativa, i comandi degli script ActiveX possono essere compilati esternamente, ad esempio tramite Microsoft Visual Basic, e quindi eseguiti come file eseguibili.

Quando un comando di un passaggio di processo è uno script ActiveX, è possibile utilizzare l'oggetto SQLActiveScriptHost per stampare l'output nella cronologia dei passaggi di processo o per creare oggetti COM. SQLActiveScriptHost è un oggetto globale introdotto dal sistema di hosting di SQL Server Agent nello spazio dei nomi dello script. L'oggetto dispone di due metodi (Stampa e CreateObject). Nell'esempio seguente viene illustrato il funzionamento degli script ActiveX in Visual Basic Scripting Edition (VBScript).

' VBScript example for ActiveX Scripting job step  
' Create a Dmo.Server object. The object connects to the  
' server on which the script is running.  
  
Set oServer = CreateObject("SQLDmo.SqlServer")  
oServer.LoginSecure = True  
oServer.Connect "(local)"  
'Disconnect and destroy the server object  
oServer.DisConnect  
Set oServer = nothing  

Passaggi dei processi di replica

Quando si creano pubblicazioni e sottoscrizioni tramite la replica, i processi di replica vengono creati per impostazione predefinita. Il tipo di processo creato è determinato dal tipo di replica (snapshot, transazionale o di tipo merge) e dalle opzioni utilizzate.

I passaggi dei processi di replica attivano uno degli agenti di replica seguenti:

  • Agente snapshot (processo Snapshot)

  • Agente lettura log (processo LogReader)

  • Agente di distribuzione (processo Distribuzione)

  • Agente di merge (processo Merge)

  • Agente di lettura coda (processo QueueReader)

Durante la configurazione della replica, è possibile specificare di eseguire gli agenti di replica in tre modi diversi: in modo continuativo dopo l'avvio di SQL Server Agent, su richiesta o in base a una pianificazione. Per altre informazioni sugli agenti di replica, vedere Panoramica degli agenti di replica.

Passaggi di processo Analysis Services

SQL Server Agent supporta due tipi diversi di passaggi di processo Analysis Services, ovvero i passaggi di processo con comandi e i passaggi di processo con query.

Passaggi di processo con comandi di Analysis Services

Quando si crea un passaggio di processo di un comando di Analysis Services è necessario:

  • Identificare il server OLAP di database in cui eseguire il passaggio di processo.

  • Digitare l'istruzione da eseguire. L'istruzione deve essere un metodo Execute XML for Analysis Services. L'istruzione non può includere una busta SOAP completa o un metodo Discover di XML for Analysis Services. A differenza di SQL Server Management Studio, i passaggi di processo di SQL Server Agent non supportano le buste SOAP complete e il metodo Discover.

Passaggi di processo con query Analysis Services

Quando si crea un passaggio di processo di una query di Analysis Services è necessario:

  • Identificare il server OLAP di database in cui eseguire il passaggio di processo.

  • Digitare l'istruzione da eseguire. L'istruzione deve essere una query MDX.

Per altre informazioni su MDX, vedere Elementi fondamentali dell'istruzione MDX (MDX).

Pacchetti Integration Services

Quando si crea un passaggio di processo con un pacchetto di Integration Services, è necessario eseguire le operazioni seguenti:

  • Identificare l'origine del pacchetto.

  • Identificare la posizione del pacchetto.

  • Se per il pacchetto sono necessari file di configurazione, identificare i file di configurazione.

  • Se per il pacchetto sono necessari file di comando, identificare i file di comando.

  • Identificare la verifica da utilizzare per il pacchetto. È possibile, ad esempio, specificare che il pacchetto deve essere firmato o deve disporre di un ID pacchetto specifico.

  • Identificare le origini dei dati per il pacchetto.

  • Identificare i provider di log per il pacchetto.

  • Specificare le variabili e i valori da impostare prima di eseguire il pacchetto.

  • Identificare le opzioni di esecuzione.

  • Aggiungere o modificare le opzioni della riga di comando.

Se il pacchetto è stato distribuito al catalogo SSIS e si specifica Catalogo SSIS come origine del pacchetto, molte di queste informazioni di configurazione vengono ottenute automaticamente dal pacchetto. Nella scheda Configurazione è possibile specificare l'ambiente, i valori dei parametri, i valori della gestione connessione, gli override delle proprietà e se il pacchetto è in esecuzione in un ambiente di runtime a 32 bit.

Per altre informazioni sulla creazione di passaggi di processo eseguiti come pacchetti di Integration Services, vedere Processi di SQL Server Agent per i pacchetti.

Descrizione Argomento
Viene descritto come creare un passaggio di processo con un programma eseguibile. Creare un passaggio di processo CmdExec
Descrive come reimpostare le autorizzazioni di SQL Server Agent. Configurare un utente per la creazione e la gestione di processi di SQL Server Agent
Descrive come creare un passaggio di processo Transact-SQL. Create a Transact-SQL Job Step
Descrive come definire le opzioni per i passaggi di processo Transact-SQL di Microsoft SQL Server Agent. Define Transact-SQL Job Step Options
Viene descritto come creare un passaggio di processo dello script ActiveX. Create an ActiveX Script Job Step
Descrive come creare e definire passaggi di processo di SQL Server Agent tramite cui vengono eseguiti comandi e query di SQL Server Analysis Services. Create an Analysis Services Job Step
Descrive quale azione di SQL Server occorre eseguire se si verifica un errore durante l'esecuzione del processo. Set Job Step Success or Failure Flow
Viene descritto come visualizzare informazioni dettagliate sui passaggi di processo nella finestra di dialogo Proprietà passaggio processo. Visualizzare informazioni sui passaggi di processo
Descrive come eliminare un log dei passaggi di processo di SQL Server Agent. Delete a Job Step Log

Vedi anche

sysjobstepslogs (Transact-SQL)
Creare commesse
sp_add_job (Transact-SQL)