Condividi tramite


Gestire i passaggi delle attività

si applica a:SQL ServerIstanza gestita di SQL di Azure

Importante

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

Una fase del lavoro è un'azione compiuta dal lavoro su un database o un server. Ogni lavoro deve avere almeno un passaggio. I passaggi del lavoro possono essere:

  • Programmi eseguibili e comandi del sistema operativo.

  • Transact-SQL istruzioni, incluse procedure memorizzate e procedure memorizzate estese.

  • Script di PowerShell.

  • Script di Microsoft ActiveX.

  • Attività di replica.

  • Attività di Analysis Services.

  • Pacchetti di Integration Services.

Ogni passaggio del processo viene eseguito in un contesto di sicurezza specifico. Se la fase del lavoro specifica un proxy, la fase del lavoro viene eseguita nel contesto di sicurezza della credenziale per il proxy. Se un passaggio del processo non specifica un proxy, il passaggio del processo viene eseguito nel contesto dell'account del servizio SQL Server Agent. Solo i membri del ruolo predefinito del server sysadmin possono creare processi che non specificano in modo esplicito un proxy.

Poiché i passaggi del processo vengono eseguiti nel contesto di un utente specifico di Microsoft Windows, tale utente deve disporre delle autorizzazioni e della configurazione necessarie per l'esecuzione del passaggio del processo. Ad esempio, se si crea un processo che richiede una lettera di unità o un percorso UNC (Universal Naming Convention), i passaggi del processo possono essere eseguiti con l'account utente di Windows durante il test delle attività. Tuttavia, l'utente di Windows per il passaggio del processo deve avere anche le autorizzazioni necessarie, le configurazioni delle lettere di unità o l'accesso all'unità richiesta. In caso contrario, il passaggio del processo ha esito negativo. Per evitare questo problema, assicurarsi che il proxy per ciascun passaggio del processo disponga delle autorizzazioni necessarie per i compiti svolti in quel passaggio. Per altre informazioni, vedere Security and Protection (Motore di database).

Log delle fasi di lavoro

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

  • Programmi eseguibili e comandi del sistema operativo.

  • "Transact-SQL dichiarazioni."

  • Attività di Analysis Services.

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

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

Nota

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

Programmi eseguibili e comandi Operating-System come passaggi del processo

I programmi eseguibili e i comandi del sistema operativo possono essere usati come passaggi del processo. Questi file possono avere estensioni .cmd, .com, .bato .exe.

Quando si usa un programma eseguibile o un comando del sistema operativo come passaggio del processo, è necessario specificare:

  • Codice di uscita del processo restituito se il comando ha avuto esito positivo.

  • Comando da eseguire. Per eseguire un comando del sistema operativo, si tratta semplicemente del comando stesso. Per un programma esterno, questo è il nome del programma e gli argomenti del programma, ad esempio: C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"

    Nota

    È necessario specificare il percorso completo del file eseguibile se l'eseguibile non si trova in una directory specificata nel percorso di sistema o nel percorso dell'utente in cui viene eseguito il passaggio del processo.

Transact-SQL Passaggi del lavoro

Quando crei un passaggio lavorativo Transact-SQL, devi:

  • Identificare il database in cui eseguire il processo.

  • Digitare l'istruzione Transact-SQL da eseguire. L'istruzione può richiamare una procedura memorizzata o una procedura memorizzata estesa.

Se lo desideri, è possibile aprire un file di Transact-SQL esistente come comando per il job step.

Transact-SQL passaggi del lavoro non utilizzano i proxy di SQL Server Agent. Il passaggio del processo viene invece eseguito come proprietario del passaggio del processo o come account del servizio SQL Server Agent se il proprietario del passaggio di processo è membro del ruolo predefinito del server sysadmin. I membri del ruolo predefinito del server sysadmin possono anche specificare che le fasi di processo Transact-SQL vengano eseguite nel contesto di un altro utente, utilizzando 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. Transact-SQL passaggi del processo possono contenere comandi GO incorporati.

Passaggi del processo di scripting di PowerShell

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

  • Testo di uno script di PowerShell.

  • File di script di PowerShell esistente da aprire.

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

Passaggi del processo di scripting ActiveX

Importante

La fase del processo di scripting ActiveX verrà rimossa da SQL Server Agent in una futura versione di Microsoft SQL Server. Evitare di usare questa funzionalità nel nuovo lavoro di sviluppo e pianificare la modifica delle applicazioni che attualmente usano questa funzionalità.

Quando si crea un passaggio del processo di scripting ActiveX, è necessario:

  • Identificare il linguaggio di scripting in cui è scritta la fase del processo.

  • Scrivere lo script ActiveX.

È anche possibile aprire un file di script ActiveX esistente come comando per il passaggio del processo. In alternativa, i comandi script ActiveX possono essere compilati esternamente (ad esempio usando Microsoft Visual Basic) e quindi eseguiti come programmi eseguibili.

Quando un comando del passaggio del processo è uno script ActiveX, è possibile usare l'oggetto SQLActiveScriptHost per stampare l'output nel log della cronologia dei passaggi del processo o 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 (Print e CreateObject). Nell'esempio seguente viene illustrato il funzionamento dello scripting 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 del lavoro di replica

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

I passaggi del processo di replica attivano uno di questi agenti di replica:

  • Agente di snapshot (processo di snapshot)

  • Agente di lettura log (lavoro LogReader)

  • Agente di distribuzione (attività di distribuzione)

  • Agente di merge (attività di merge)

  • Agente di lettura coda (processo QueueReader)

Quando la replica è configurata, è possibile specificare di eseguire gli agenti di replica in uno dei tre modi seguenti: continuamente 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 dei lavori di Analysis Services

SQL Server Agent supporta due tipi distinti di passaggi di Analysis Services: passaggi di comando e passaggi di query.

Passaggi del processo di comando di Analysis Services

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

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

  • Digitare l'istruzione da eseguire. L'istruzione deve essere un codice XML per Analysis Services metodo Execute. L'istruzione potrebbe non contenere una busta SOAP completa o un XML del metodo Discover per Analysis Services. Si noti che, mentre SQL Server Management Studio supporta buste SOAP complete e il metodo Discover, i passaggi di processo di SQL Server Agent non lo fanno.

Passaggi del processo di query di Analysis Services

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

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

  • Digitare l'istruzione da eseguire. L'istruzione deve essere una query di espressioni multidimensionali (MDX).

Per altre informazioni su MDX, vedere MDX Statement Fundamentals (MDX).

Pacchetti di Integration Services

Quando si crea un passaggio del processo del 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 i file di comando sono necessari per il pacchetto, identificare i file di comando.

  • Identifica la procedura di verifica da usare per il pacchetto. Ad esempio, è possibile specificare che il pacchetto deve essere firmato o che il pacchetto deve avere un ID pacchetto specifico.

  • Identificare le fonti di dati per il pacchetto.

  • Identificare i provider di log per il pacchetto.

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

  • Identificare le opzioni di esecuzione.

  • Aggiungere o modificare le opzioni della riga di comando.

Si noti che se il pacchetto è stato distribuito nel catalogo SSIS e si specifica catalogo SSIS come origine del pacchetto, gran parte di queste informazioni di configurazione viene ottenuta automaticamente dal pacchetto. Nella scheda Configurazione è possibile specificare l'ambiente, i valori dei parametri, i valori del gestore delle connessioni, le sovrascritture delle proprietà e se il pacchetto viene eseguito in un ambiente di runtime a 32 bit.

Per ulteriori informazioni sulla creazione di fasi di lavoro che eseguono pacchetti di Integration Services, vedere Lavori di SQL Server Agent per pacchetti.

Descrizione Argomento
Viene descritto come creare un passaggio del processo con un programma eseguibile. Creare un passaggio di attività CmdExec
Viene descritto come reimpostare le autorizzazioni di SQL Server Agent. Configurare un utente per creare e gestire processi dell'agente di SQL Server
Descrive come creare una fase di lavoro Transact-SQL. Creare una fase del lavoro Transact-SQL
Descrive come definire le opzioni per i passaggi lavoro di Microsoft SQL Server Agent Transact-SQL. Definire Transact-SQL opzioni della fase del lavoro
Descrive come creare un passaggio di lavoro di script ActiveX. Creare una Fase del Processo di Script ActiveX
Viene descritto come creare e definire i passaggi di processo di SQL Server Agent che eseguono comandi e query di SQL Server Analysis Services. Creare un passaggio di attività di Analysis Services
Descrive l'azione che SQL Server deve eseguire se si verifica un errore durante l'esecuzione del processo. Imposta il risultato di successo o fallimento del passaggio di lavoro
Descrive come visualizzare i dettagli del passaggio del processo nella finestra di dialogo Proprietà passaggio processo. Visualizzare le Informazioni sul Passaggio di Processo
Viene descritto come eliminare un log dei passaggi del processo di SQL Server Agent. Eliminare un registro dei passaggi di un lavoro

Vedere anche

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