Creazione di un processoCreate a Job

In questo argomento viene descritto come creare un processo di SQL Server Agent in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL o SQL Server Management Objects (SMO).This topic describes how to create a SQL Server Agent job in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or SQL Server Management Objects (SMO).

Per aggiungere al processo passaggi, pianificazioni, avvisi e notifiche da inviare agli operatori, vedere i collegamenti agli argomenti nella sezione Vedere anche.To add job steps, schedules, alerts, and notifications that can be sent to operators, see the links to topics in the See Also section.

Prima di iniziareBefore You Begin

Limitazioni e restrizioniLimitations and Restrictions

  • Per creare un processo, è necessario che l'utente sia membro di uno dei ruoli predefiniti del database di SQL ServerSQL Server Agent o del ruolo predefinito del server sysadmin .To create a job, a user must be a member of one of the SQL ServerSQL Server Agent fixed database roles or the sysadmin fixed server role. Un processo può essere modificato solo dal proprietario o dai membri del ruolo sysadmin .A job can be edited only by its owner or members of the sysadmin role. Per altre informazioni sui ruoli predefiniti del database di SQL ServerSQL Server Agent, vedere Ruoli di database predefiniti di SQL Server Agent.For more information about the SQL ServerSQL Server Agent fixed database roles, see SQL Server Agent Fixed Database Roles.

  • L'assegnazione di un processo a un altro account di accesso non garantisce che il nuovo proprietario disponga di autorizzazioni sufficienti per eseguire correttamente il processo.Assigning a job to another login does not guarantee that the new owner has sufficient permission to run the job successfully.

  • I processi locali vengono memorizzati nella cache dall'istanza locale di SQL ServerSQL Server Agent.Local jobs are cached by the local SQL ServerSQL Server Agent. Eventuali modifiche, pertanto, forzano in modo implicito una nuova memorizzazione nella cache da parte di SQL ServerSQL Server Agent.Therefore, any modifications implicitly force SQL ServerSQL Server Agent to re-cache the job. Poiché SQL ServerSQL Server Agent non memorizza nella cache il processo fino alla chiamata di sp_add_jobserver , è consigliabile chiamare la store procedure sp_add_jobserver per ultima.Because SQL ServerSQL Server Agent does not cache the job until sp_add_jobserver is called, it is more efficient to call sp_add_jobserver last.

SecuritySecurity

  • Solo un amministratore di sistema può cambiare il proprietario di un processo.You must be a system administrator to change the owner of a job.

  • Per motivi di sicurezza, solo il proprietario del processo o un membro del ruolo sysadmin può modificare la definizione del processo.For security reasons, only the job owner or a member of the sysadmin role can change the definition of the job. Solo i membri del ruolo predefinito del server sysadmin possono assegnare la proprietà di un processo ad altri utenti ed eseguire qualsiasi processo, indipendentemente dal proprietario.Only members of the sysadmin fixed server role can assign job ownership to other users, and they can run any job, regardless of the job owner.

    Nota

    Se si assegna la proprietà di un processo a un utente che non è membro del ruolo predefinito del server sysadmin e il processo sta eseguendo operazioni per le quali sono necessari account proxy, ad esempio l'esecuzione del pacchetto SSISSSIS , verificare che l'utente possa accedere all'account proxy. In caso contrario, verrà generato un errore.If you change job ownership to a user who is not a member of the sysadmin fixed server role, and the job is executing job steps that require proxy accounts (for example, SSISSSIS package execution), make sure that the user has access to that proxy account or else the job will fail.

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 processo di SQL Server AgentTo create a SQL Server Agent job

  1. In Esplora oggettifare clic sul segno più per espandere il server in cui si desidera creare un processo di SQL Server Agent.In the Object Explorer, click the plus sign to expand the server where you want to create a SQL Server Agent job.

  2. Fare clic sul segno più per espandere SQL Server Agent.Click the plus sign to expand SQL Server Agent.

  3. Fare clic con il pulsante destro del mouse sulla cartella Processi , quindi scegliere Nuovo processo.Right-click the Jobs folder and select New Job….

  4. Nella pagina Generale della finestra di dialogo Nuove processo modificare le proprietà generali del processo.In the New Job dialog box, on the General page, modify the general properties of the job. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - nuovo processo (pagina Generale)For more information on the available options on this page, see Job Properties - New Job (General Page)

  5. Nella pagina Passaggi , organizzare i passaggi del processo.On the Steps page, organize the job steps. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - nuovo processo (pagina Passaggi)For more information on the available options on this page, see Job Properties - New Job (Steps Page)

  6. Nella pagina Pianificazioni , organizzare le pianificazioni per il processo.On the Schedules page, organize schedules for the job. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - Nuovo processo (pagina Pianificazioni)For more information on the available options on this page, see Job Properties - New Job (Schedules Page)

  7. Nella pagina Avvisi , organizzare gli avvisi per il processo.On the Alerts page, organize the alerts for the job. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - nuovo processo (pagina Avvisi)For more information on the available options on this page, see Job Properties - New Job (Alerts Page)

  8. Nella pagina Notifiche impostare le azioni che MicrosoftMicrosoft SQL ServerSQL Server Agent deve eseguire al completamento del processo.On the Notifications page, set actions for MicrosoftMicrosoft SQL ServerSQL Server Agent to perform when the job completes. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - nuovo processo (pagina Notifiche).For more information on the available options on this page, see Job Properties - New Job (Notifications Page).

  9. Nella pagina Destinazioni , gestire i server di destinazione per il processo.On the Targets page, manage the target servers for the job. Per altre informazioni sulle opzioni disponibili in questa pagina, vedere Proprietà processo - nuovo processo (pagina Destinazioni).For more information on the available options on this page, see Job Properties - New Job (Targets Page).

  10. Al termine, fare clic su OK.When finished, click OK.

Utilizzo di Transact-SQLUsing Transact-SQL

Per creare un processo di SQL Server AgentTo create a SQL Server Agent job

  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.

    USE msdb ;  
    GO  
    EXEC dbo.sp_add_job  
        @job_name = N'Weekly Sales Data Backup' ;  
    GO  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name = N'Set database to read only',  
        @subsystem = N'TSQL',  
        @command = N'ALTER DATABASE SALES SET READ_ONLY',   
        @retry_attempts = 5,  
        @retry_interval = 5 ;  
    GO  
    EXEC dbo.sp_add_schedule  
        @schedule_name = N'RunOnce',  
        @freq_type = 1,  
        @active_start_time = 233000 ;  
    USE msdb ;  
    GO  
    EXEC sp_attach_schedule  
       @job_name = N'Weekly Sales Data Backup',  
       @schedule_name = N'RunOnce';  
    GO  
    EXEC dbo.sp_add_jobserver  
        @job_name = N'Weekly Sales Data Backup';  
    GO  
    

Per altre informazioni, vedere:For more information, see:

Utilizzo di SQL Server Management ObjectsUsing SQL Server Management Objects

Per creare un processo di SQL Server AgentTo create a SQL Server Agent job

Chiamare il metodo Create della classe Job usando un linguaggio di programmazione come Visual Basic, Visual C# o PowerShell.Call the Create method of the Job class by using a programming language that you choose, such as Visual Basic, Visual C#, or PowerShell. Per un esempio di codice, vedere Pianificazione delle attività amministrative automatiche in SQL Server Agent.For example code, see Scheduling Automatic Administrative Tasks in SQL Server Agent.