sp_attach_schedule (Transact-SQL)

Si applica a:SQL Server

Imposta una pianificazione per un processo.

Convenzioni di sintassi Transact-SQL

Sintassi

sp_attach_schedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @schedule_id = ] schedule_id ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Argomenti

[ @job_id = ] 'job_id'

Numero di identificazione del processo a cui viene aggiunta la pianificazione. @job_id è uniqueidentifier, con un valore predefinito .NULL

È necessario specificare @job_id o @job_name , ma non è possibile specificare entrambi.

[ @job_name = ] N'job_name'

Nome del processo a cui viene aggiunta la pianificazione. @job_name è sysname, con il valore predefinito NULL.

È necessario specificare @job_id o @job_name , ma non è possibile specificare entrambi.

[ @schedule_id = ] schedule_id

Numero di identificazione della pianificazione da impostare per il processo. @schedule_id è int, con il valore predefinito NULL.

È necessario specificare @schedule_id o @schedule_name , ma non è possibile specificare entrambi.

[ @schedule_name = ] N'schedule_name'

Nome della pianificazione da impostare per il processo. @schedule_name è sysname, con un valore predefinito .NULL

È necessario specificare @schedule_id o @schedule_name , ma non è possibile specificare entrambi.

[ @automatic_post = ] automatic_post

@automatic_post è bit, con un valore predefinito .1

Osservazioni:

La pianificazione e il processo devono avere lo stesso proprietario.

È possibile impostare una pianificazione per più di un processo. È possibile eseguire un processo su più di una pianificazione.

Questa stored procedure deve essere eseguita dal msdb database.

Autorizzazioni

Questa stored procedure è di proprietà del ruolo db_owner . È possibile concedere EXECUTE autorizzazioni per qualsiasi utente, ma queste autorizzazioni possono essere sottoposte a override durante un aggiornamento di SQL Server.

È necessario concedere ad altri utenti uno dei ruoli predefiniti del database di SQL Server Agent seguenti:msdb

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Il proprietario del processo può collegare un processo a una pianificazione e scollegare un processo da una pianificazione senza dover essere anche il proprietario della pianificazione. Tuttavia, non è possibile eliminare una pianificazione se lo scollegamento lascia senza processi, a meno che il chiamante non sia il proprietario della pianificazione.

Per informazioni dettagliate sulle autorizzazioni di questi ruoli, vedere Ruoli di database predefiniti di SQL Server Agent.

SQL Server controlla se l'utente è proprietario sia del processo che della pianificazione.

Esempi

Nell'esempio seguente viene creata una pianificazione denominata NightlyJobs. I processi che utilizzano questa pianificazione vengono eseguiti ogni giorno quando l'ora indicata dal server è 01:00. Nell'esempio la pianificazione viene collegata al processo BackupDatabase e al processo RunReports.

Nota

In questo esempio si presuppone che il processo BackupDatabase e il processo RunReports esistano già.

USE msdb;
GO

EXEC sp_add_schedule
    @schedule_name = N'NightlyJobs' ,
    @freq_type = 4,
    @freq_interval = 1,
    @active_start_time = 010000 ;
GO

EXEC sp_attach_schedule
   @job_name = N'BackupDatabase',
   @schedule_name = N'NightlyJobs' ;
GO

EXEC sp_attach_schedule
   @job_name = N'RunReports',
   @schedule_name = N'NightlyJobs' ;
GO