Gestire passaggi di processoManage Job Steps

Un passaggio di processo è un'operazione eseguita dal processo in un database o in un server.A job step is an action that the job takes on a database or a server. Ogni processo deve essere composto da almeno un passaggio.Every job must have at least one job step. I passaggi di processo possono essere costituiti dagli elementi seguenti:Job steps can be:

  • Programmi eseguibili e comandi del sistema operativo.Executable programs and operating system commands.

  • Transact-SQLTransact-SQL istruzioni, incluse stored procedure e stored procedure estese. statements, including stored procedures and extended stored procedures.

  • Script di PowerShell.PowerShell scripts.

  • MicrosoftMicrosoft Script ActiveX. ActiveX scripts.

  • Attività di replica.Replication tasks.

  • Analysis ServicesAnalysis Services attività. tasks.

  • Integration ServicesIntegration Services pacchetti. packages.

Ogni passaggio di processo viene eseguito in un contesto di sicurezza specifico.Every job step runs in a specific security context. Se tramite il passaggio di processo viene specificato un proxy, il passaggio viene eseguito nel contesto di sicurezza della credenziale per il proxy.If the job step specifies a proxy, the job step runs in the security context of the credential for the proxy. Se tramite il passaggio di processo non viene specificato un proxy, il passaggio viene eseguito nel contesto dell'account del servizio SQL ServerSQL Server Agent.If a job step does not specify a proxy, the job step runs in the context of the SQL ServerSQL Server Agent service account. Solo i membri del ruolo predefinito del server sysadmin possono creare processi in cui non venga specificato esplicitamente un proxy.Only members of the sysadmin fixed server role can create jobs that do not explicitly specify a proxy.

Poiché i passaggi di processo vengono eseguiti nel contesto di un utente specifico di MicrosoftMicrosoft Windows, l'utente deve essere in possesso delle autorizzazioni e della configurazione necessarie per l'esecuzione del passaggio di processo.Because job steps run in the context of a specific MicrosoftMicrosoft Windows user, that user must have the permissions and configuration necessary for the job step to execute. 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.For example, if you create a job that requires a drive letter or a Universal Naming Convention (UNC) path, the job steps may run under your Windows user account while testing the tasks. 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.However, the Windows user for the job step must also have the necessary permissions, drive letter configurations, or access to the required drive. In caso contrario, il passaggio di processo non verrà eseguito correttamente.Otherwise, the job step fails. Per evitare questo problema, assicurarsi che il proxy per ogni passaggio di processo disponga delle autorizzazioni necessarie per l'operazione eseguita dal passaggio.To prevent this problem, ensure that the proxy for each job step has the necessary permissions for the task that the job step performs. Per altre informazioni, vedere Sicurezza e protezione (Motore di database).For more information, see Security and Protection (Database Engine).

Log dei passaggi di processoJob Step Logs

SQL ServerSQL Server Agent può scrivere output da alcuni passaggi di processo in un file del sistema operativo o nella tabella sysjobstepslogs del database msdb. Agent can write output from some job steps either to an operating system file or to the sysjobstepslogs table in the msdb database. I tipi di passaggi di processo seguenti consentono la scrittura dell'output in entrambe le destinazioni:The following job step types can write output to both destinations:

  • Programmi eseguibili e comandi del sistema operativo.Executable programs and operating system commands.

  • Transact-SQLTransact-SQL . statements.

  • Analysis ServicesAnalysis Services attività. tasks.

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.Only job steps that are executed by users who are members of the sysadmin fixed server role can write job step output to operating system files. 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.If job steps are executed by users who are members of the SQLAgentUserRole, SQLAgentReaderRole, or the SQLAgentOperatorRole fixed database roles in the msdb database, then the output from these job steps can be written only to the sysjobstepslogs table.

I log dei passaggi di processo vengono eliminati automaticamente quando vengono eliminati i processi o i passaggi di processo.Job step logs are automatically deleted when jobs or job steps are deleted.

Nota

La registrazione delle attività di replica e dei passaggi di processo dei pacchetti Integration ServicesIntegration Services viene gestita dal rispettivo sottosistema.Replication task and Integration ServicesIntegration Services package job step logging is handled by their respective subsystem. Non è possibile utilizzare SQL ServerSQL Server Agent per configurare la registrazione di questi tipi di passaggi di processo.You cannot use SQL ServerSQL Server Agent to configure jog step logging for these types of job steps.

Utilizzo di programmi eseguibili e comandi del sistema operativo come passaggi di processoExecutable Programs and Operating-System Commands As Job Steps

I programmi eseguibili e i comandi del sistema operativo possono essere utilizzati come passaggi di processo.Executable programs and operating-system commands can be used as job steps. Questi file possono avere estensione bat, cmd, com o exe.These files may have .bat, .cmd, .com, or .exe file extensions.

Quando si utilizza un programma eseguibile o un comando del sistema operativo come passaggio di processo, è necessario specificare gli elementi seguenti:When you use an executable program or an operating-system command as a job step, you must specify:

  • Il codice di uscita del processo, restituito se il comando ha esito positivo.The process exit code returned if the command was successful.

  • Comando da eseguire.The command to execute. Per eseguire un comando del sistema operativo, è necessario immettere solo il comando specifico.To execute an operating system command, this is simply the command itself. 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"For an external program, this is the name of the program and the arguments to the program, for example: C:\Program Files\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.You must provide the full path to the executable if the executable is not located in a directory specified in the system path or the path for the user that the job step runs as.

Passaggi di processo Transact-SQLTransact-SQL Job Steps

Quando si crea un passaggio di processo Transact-SQLTransact-SQL , è necessario eseguire le operazioni seguenti:When you create a Transact-SQLTransact-SQL job step, you must:

  • Identificare il database in cui eseguire il processo.Identify the database in which to run the job.

  • Digitare l'istruzione Transact-SQLTransact-SQL da eseguire.Type the Transact-SQLTransact-SQL statement to execute. L'istruzione può chiamare una stored procedure o una stored procedure estesa.The statement may call a stored procedure or an extended stored procedure.

In alternativa, è possibile aprire un file Transact-SQLTransact-SQL esistente come comando per il passaggio di processo.Optionally, you can open an existing Transact-SQLTransact-SQL file as the command for the job step.

Transact-SQLTransact-SQL I passaggi di processo non usano proxy di SQL ServerSQL Server Agent. Agent proxies. Il passaggio di processo viene invece eseguito come proprietario del passaggio oppure come account del servizio SQL ServerSQL Server Agent se il proprietario è un membro del ruolo predefinito del server sysadmin.Instead, the job step runs as the owner of the job step, or as the SQL ServerSQL Server Agent service account if the owner of the job step is a member of the sysadmin fixed server role. I membri del ruolo predefinito del server sysadmin possono anche specificare che i passaggi di processo Transact-SQLTransact-SQL vengano eseguiti nel contesto di un altro utente tramite il parametro database_user_name della stored procedure sp_add_jobstep.Members of the sysadmin fixed server role can also specify that Transact-SQLTransact-SQL job steps run under the context of another user by using the database_user_name parameter of the sp_add_jobstep stored procedure. Per altre informazioni, vedere sp_add_jobstep (Transact-SQL).For more information, see sp_add_jobstep (Transact-SQL).

Nota

Un singolo passaggio di processo Transact-SQLTransact-SQL può contenere più batch.A single Transact-SQLTransact-SQL job step can contain multiple batches. Transact-SQLTransact-SQL I passaggi di processo possono contenere comandi GO incorporati. job steps can contain embedded GO commands.

Utilizzo di script di PowerShell come passaggi di processoPowerShell Scripting Job Steps

Quando si utilizza uno script di PowerShell per creare un passaggio di processo, come comando del passaggio è necessario specificare uno dei due elementi seguenti:When you create a PowerShell script job step, you must specify one of two things as the command for the step:

  • Il testo di uno script di PowerShell.The text of a PowerShell script.

  • Un file script di PowerShell esistente da aprire.An existing PowerShell script file to be opened.

Il sottosistema PowerShell di SQL ServerSQL Server apre una sessione di PowerShell e carica gli snap-in SQL ServerSQL Server PowerShell.The SQL ServerSQL Server Agent PowerShell subsystem opens a PowerShell session and loads the SQL ServerSQL Server PowerShell snap-ins. Lo script di PowerShell usato come comando del passaggio di processo può fare riferimento al provider e ai cmdlet di PowerShell per SQL ServerSQL Server .The PowerShell script used as the job step command can reference the SQL ServerSQL Server PowerShell provider and cmdlets. Per altre informazioni sulla scrittura di script di PowerShell tramite gli snap-in SQL ServerSQL Server PowerShell, vedere SQL Server PowerShell.For more information about writing PowerShell scripts using the SQL ServerSQL Server PowerShell snap-ins, see the SQL Server PowerShell.

Utilizzo di Script ActiveX come passaggi di processoActiveX Scripting Job Steps

Importante

Il passaggio di processo con script ActiveX verrà rimosso da SQL ServerSQL Server Agent in una versione futura di MicrosoftMicrosoft SQL ServerSQL Server.The ActiveX scripting job step will be removed from SQL ServerSQL Server Agent in a future version of MicrosoftMicrosoft SQL ServerSQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Quando si crea un passaggio di processo con script ActiveX, è necessario eseguire le operazioni seguenti:When you create an ActiveX scripting job step, you must:

  • Identificare il linguaggio di script con cui scrivere il passaggio di processo.Identify the scripting language in which the job step is written.

  • Scrivere lo script ActiveX.Write the ActiveX script.

È inoltre possibile aprire un file di script ActiveX esistente come comando per il passaggio di processo.You can also open an existing ActiveX script file as the command for the job step. In alternativa, i comandi degli script ActiveX possono essere compilati esternamente, ad esempio tramite Microsoft Visual Basic, e quindi eseguiti come file eseguibili.Alternatively, ActiveX script commands can be externally compiled (for example, using Microsoft Visual Basic) and then run as executable programs.

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.When a job step command is an ActiveX script, you can use the SQLActiveScriptHost object to print output to the job step history log or create COM objects. SQLActiveScriptHost è un oggetto globale introdotto dal sistema di hosting di SQL ServerSQL Server Agent nello spazio dei nomi dello script.SQLActiveScriptHost is a global object that is introduced by SQL ServerSQL Server Agent hosting system into the script name space. L'oggetto dispone di due metodi (Stampa e CreateObject).The object has two methods (Print and CreateObject). Nell'esempio seguente viene illustrato il funzionamento degli script ActiveX in Visual Basic Scripting Edition (VBScript).The following example shows how ActiveX scripting works 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 replicaReplication Job Steps

Quando si creano pubblicazioni e sottoscrizioni tramite la replica, i processi di replica vengono creati per impostazione predefinita.When you create publications and subscriptions using replication, replication jobs are created by default. Il tipo di processo creato è determinato dal tipo di replica (snapshot, transazionale o di tipo merge) e dalle opzioni utilizzate.The type of job created is determined by the type of replication (snapshot, transactional, or merge) and the options used.

I passaggi dei processi di replica attivano uno degli agenti di replica seguenti:Replication job steps activate one of these replication agents:

  • Agente snapshot (processo Snapshot)Snapshot Agent (Snapshot job)

  • Agente lettura log (processo LogReader)Log Reader Agent (LogReader job)

  • Agente di distribuzione (processo Distribuzione)Distribution Agent (Distribution job)

  • Agente di merge (processo Merge)Merge Agent (Merge job)

  • Agente di lettura coda (processo QueueReader)Queue Reader Agent (QueueReader job)

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 ServerSQL Server Agent, su richiesta o in base a una pianificazione.When replication is set up, you can specify to run the replication agents in one of three ways: continuously after SQL ServerSQL Server Agent is started, on demand, or according to a schedule. Per altre informazioni sugli agenti di replica, vedere Panoramica degli agenti di replica.For more information about replication agents, see Replication Agents Overview.

Passaggi di processo Analysis ServicesAnalysis Services Job Steps

SQL ServerSQL 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. Agent supports two distinct types of Analysis Services job steps, command job steps, and query job steps.

Passaggi di processo con comandi di Analysis ServicesAnalysis Services Command Job Steps

Quando si crea un passaggio di processo con un comando di Analysis ServicesAnalysis Services , è necessario eseguire le operazioni seguenti:When you create an Analysis ServicesAnalysis Services command job step, you must:

  • Identificare il server OLAP di database in cui eseguire il passaggio di processo.Identify the database OLAP server in which to run the job step.

  • Digitare l'istruzione da eseguire.Type the statement to execute. È necessario che l'istruzione sia un file XML per il metodo Analysis ServicesAnalysis Services di .The statement must be an XML for Analysis ServicesAnalysis Services Execute method. L'istruzione non può includere una busta SOAP completa o un file XML per il metodo Analysis ServicesAnalysis Services di .The statement may not contain a complete SOAP envelope or an XML for Analysis ServicesAnalysis Services Discover method. A differenza di SQL Server Management StudioSQL Server Management Studio , i passaggi di processo di Agent non supportano le buste SOAP complete e il metodo Discover SQL ServerSQL Server .Notice that, while SQL Server Management StudioSQL Server Management Studio supports complete SOAP envelopes and the Discover method, SQL ServerSQL Server Agent job steps do not.

Passaggi di processo con query Analysis ServicesAnalysis Services Query Job Steps

Quando si crea un passaggio di processo con una query di Analysis ServicesAnalysis Services , è necessario eseguire le operazioni seguenti:When you create an Analysis ServicesAnalysis Services query job step, you must:

  • Identificare il server OLAP di database in cui eseguire il passaggio di processo.Identify the database OLAP server in which to run the job step.

  • Digitare l'istruzione da eseguire.Type the statement to execute. L'istruzione deve essere una query MDX.The statement must be a multidimensional expressions (MDX) query.

Per altre informazioni su MDX, vedere Elementi fondamentali dell'istruzione MDX (MDX).For more information on MDX, see MDX Statement Fundamentals (MDX).

Pacchetti Integration ServicesIntegration Services Packages

Quando si crea un passaggio di processo con un pacchetto di Integration ServicesIntegration Services , è necessario eseguire le operazioni seguenti:When you create an Integration ServicesIntegration Services package job step, you must do the following:

  • Identificare l'origine del pacchetto.Identify the source of the package.

  • Identificare la posizione del pacchetto.Identify the location of the package.

  • Se per il pacchetto sono necessari file di configurazione, identificare i file di configurazione.If configuration files are required for the package, identify the configuration files.

  • Se per il pacchetto sono necessari file di comando, identificare i file di comando.If command files are required for the package, identify the command files.

  • Identificare la verifica da utilizzare per il pacchetto.Identify the verification to use for the package. È possibile, ad esempio, specificare che il pacchetto deve essere firmato o deve disporre di un ID pacchetto specifico.For example, you can specify that the package must be signed, or that the package must have a specific package ID.

  • Identificare le origini dei dati per il pacchetto.Identify the data sources for the package.

  • Identificare i provider di log per il pacchetto.Identify the log providers for the package.

  • Specificare le variabili e i valori da impostare prima di eseguire il pacchetto.Specify variables and values to set before running the package.

  • Identificare le opzioni di esecuzione.Identify execution options.

  • Aggiungere o modificare le opzioni della riga di comando.Add or modify command-line options.

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.Note that if you deployed the package to the SSIS Catalog and you specify SSIS Catalog as the package source, much of this configuration information is obtained automatically from the package. 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.Under the Configuration tab you can specify the environment, parameter values, connection manager values, property overrides, and whether the package runs in a 32-bit runtime environment.

Per altre informazioni sulla creazione di passaggi di processo eseguiti come pacchetti Integration ServicesIntegration Services , vedere Processi di SQL Server Agent per i pacchetti.For more information about creating job steps that run Integration ServicesIntegration Services packages, see SQL Server Agent Jobs for Packages.

DescriptionDescription ArgomentoTopic
Viene descritto come creare un passaggio di processo con un programma eseguibile.Describes how to create a job step with an executable program. Creare un passaggio di processo CmdExecCreate a CmdExec Job Step
Viene descritto come reimpostare le autorizzazioni di SQL ServerSQL Server Agent.Describes how to reset SQL ServerSQL Server Agent permissions. Configurare un utente per la creazione e la gestione di processi di SQL Server AgentConfigure a User to Create and Manage SQL Server Agent Jobs
Viene descritto come creare un passaggio di processo di Transact-SQLTransact-SQL Agent.Describes how to create a Transact-SQLTransact-SQL job step. Create a Transact-SQL Job StepCreate a Transact-SQL Job Step
Viene descritto come definire le opzioni per i passaggi di processo Transact-SQL di Microsoft SQL ServerSQL Server Agent.Describes how to define options for Microsoft SQL ServerSQL Server Agent Transact-SQL job steps. Define Transact-SQL Job Step OptionsDefine Transact-SQL Job Step Options
Viene descritto come creare un passaggio di processo dello script ActiveX.Describes how to create an ActiveX script job step. Create an ActiveX Script Job StepCreate an ActiveX Script Job Step
Viene descritto come creare e definire passaggi di processo di SQL ServerSQL Server Agent tramite cui vengono eseguiti comandi e query di SQL ServerSQL Server Analysis Services.Describes how to create and define SQL ServerSQL Server Agent job steps that execute SQL ServerSQL Server Analysis Services commands and queries. Create an Analysis Services Job StepCreate an Analysis Services Job Step
Viene descritta quale azione di SQL ServerSQL Server occorre eseguire se si verifica un errore durante l'esecuzione del processo.Describes what action SQL ServerSQL Server should take if a failure occurs during job execution. Set Job Step Success or Failure FlowSet Job Step Success or Failure Flow
Viene descritto come visualizzare informazioni dettagliate sui passaggi di processo nella finestra di dialogo Proprietà passaggio processo.Describes how to view job step details in the Job Step Properties dialog. Visualizzare informazioni sui passaggi di processoView Job Step Information
Viene descritto come eliminare un log dei passaggi di processo di SQL ServerSQL Server Agent.Describes how to delete a SQL ServerSQL Server Agent job step log. Delete a Job Step LogDelete a Job Step Log

Vedere ancheSee Also

sysjobstepslogs (Transact-SQL)sysjobstepslogs (Transact-SQL)
Crea processiCreate Jobs
sp_add_job (Transact-SQL)sp_add_job (Transact-SQL)