Creare un passaggio di processo CmdExecCreate a CmdExec Job Step

In questo argomento viene illustrato come creare e definire un passaggio di processo di MicrosoftMicrosoft SQL ServerSQL Server Agent in SQL Server 2017SQL Server 2017 in cui viene utilizzato un programma eseguibile o un comando del sistema operativo tramite SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL o SQL Server Management Objects.This topic describes how to create and define a MicrosoftMicrosoft SQL ServerSQL Server Agent job step in SQL Server 2017SQL Server 2017 that uses an executable program or operating system command by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL or SQL Server Management Objects.

Contenuto dell'argomentoIn This Topic

Prima di iniziareBefore You Begin

SecuritySecurity

Per impostazione predefinita, solo i membri del ruolo predefinito del server sysadmin possono creare passaggi di processo CmdExec.By default, only members of the sysadmin fixed server role can create CmdExec job steps. Questi passaggi di processo vengono eseguiti nel contesto dell'account di servizio SQL Server Agent a meno che l'utente sysadmin crei un account proxy.These job steps run under the context of the SQL Server Agent service account unless the sysadmin user creates a proxy account. Gli utenti che non sono membri del ruolo sysadmin possono creare passaggi di processo CmdExec se hanno accesso a un account proxy CmdExec.Users who are not members of the sysadmin role can create CmdExec job steps if they have access to a CmdExec proxy account.

PermissionsPermissions

Per informazioni dettagliate, vedere Implement SQL Server Agent Security.For detailed information, see Implement SQL Server Agent Security.

Utilizzo di SQL Server Management StudioUsing SQL Server Management Studio

Per creare un passaggio del processo di CmdExecTo create a CmdExec job step

  1. In Esplora oggetti connettersi a un'istanza del Motore di database di SQL ServerSQL Server Database Engineed espandere tale istanza.In Object Explorer, connect to an instance of the Motore di database di SQL ServerSQL Server Database Engine, and then expand that instance.

  2. Espandere SQL Server Agent, creare un nuovo processo oppure fare clic con il pulsante destro del mouse su un processo esistente e quindi scegliere Proprietà.Expand SQL Server Agent, create a new job or right-click an existing job, and then click Properties.

  3. Nella finestra di dialogo Proprietà processo fare clic sulla pagina Passaggi e quindi su Nuovo.In the Job Properties dialog, click the Steps page, and then click New.

  4. Nella finestra di dialogo Nuovo passaggio di processo digitare il nome del passaggio del processo nella casella Nome passaggio.In the New Job Step dialog, type a job Step name.

  5. Nell'elenco Tipo selezionare Sistema operativo (CmdExec).In the Type list, choose Operating system (CmdExec).

  6. Nell'elenco Esegui come selezionare l'account proxy con le credenziali che verranno utilizzate dal processo.In Run as list, select the proxy account with the credentials that the job will use. Per impostazione predefinita, questi passaggi di processo vengono eseguiti nel contesto dell'account di servizio SQL Server Agent.By default, CmdExec job steps run under the context of the SQL Server Agent service account.

  7. Nella casella Elabora codice di uscita di un comando eseguito correttamente digitare un valore compreso tra 0 e 999999.In the Process exit code of a successful command box, enter a value from 0 to 999999.

  8. Nella casella Comando digitare il comando di sistema operativo o programma eseguibile.In the Command box, enter the operating system command or executable program. Per un esempio vedere "Utilizzo di Transact-SQL".See "Using Transact T-SQL for an example.

  9. Fare clic sulla pagina Avanzate per impostare le opzioni relative ai passaggi di processo, ad esempio l'operazione da eseguire se il passaggio di processo ha esito positivo o negativo, il numero di tentativi che devono essere eseguiti da SQL ServerSQL Server Agent per l'esecuzione del passaggio di processo e il file in cui SQL ServerSQL Server Agent può scrivere l'output del passaggio di processo.Click the Advanced page to set job step options, such as: what action to take if the job step succeeds or fails, how many times SQL ServerSQL Server Agent should try to execute the job step, and the file where SQL ServerSQL Server Agent can write the job step output. Solo i membri del ruolo predefinito del server sysadmin possono scrivere l'output dei passaggi di processo in un file di sistema operativo.Only members of the sysadmin fixed server role can write job step output to an operating system file.

Utilizzo di Transact-SQLUsing Transact-SQL

Per creare un passaggio del processo di CmdExecTo create a CmdExec job step

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  2. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute.

    -- creates a job step that that uses CmdExec  
    USE msdb;  
    GO  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name = N'Set database to read only',  
        @subsystem = N'CMDEXEC',  
        @command = C:\clickme_scripts\SQL11\PostBOLReorg GetHsX.exe',   
        @retry_attempts = 5,  
        @retry_interval = 5 ;  
    GO  
    

Per altre informazioni, vedere sp_add_jobstep (Transact-SQL)For more information, see sp_add_jobstep (Transact-SQL)

Utilizzo di SQL Server Management ObjectsUsing SQL Server Management Objects

Per creare un passaggio del processo di CmdExecTo create a CmdExec job step

Usare la classe JobStep con un linguaggio di programmazione come Visual Basic, Visual C# o PowerShell.Use the JobStep class by using a programming language that you choose, such as Visual Basic, Visual C#, or PowerShell.