sp_add_jobschedule (Transact-SQL)

Si applica a:SQL Server Istanza gestita di SQL di Azure

Crea una pianificazione per un processo di SQL Server Agent.

Convenzioni di sintassi Transact-SQL

Importante

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

Sintassi

sp_add_jobschedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    , [ @name = ] N'name'
    [ , [ @enabled = ] enabled ]
    [ , [ @freq_type = ] freq_type ]
    [ , [ @freq_interval = ] freq_interval ]
    [ , [ @freq_subday_type = ] freq_subday_type ]
    [ , [ @freq_subday_interval = ] freq_subday_interval ]
    [ , [ @freq_relative_interval = ] freq_relative_interval ]
    [ , [ @freq_recurrence_factor = ] freq_recurrence_factor ]
    [ , [ @active_start_date = ] active_start_date ]
    [ , [ @active_end_date = ] active_end_date ]
    [ , [ @active_start_time = ] active_start_time ]
    [ , [ @active_end_time = ] active_end_time ]
    [ , [ @schedule_id = ] schedule_id OUTPUT ]
    [ , [ @automatic_post = ] automatic_post ]
    [ , [ @schedule_uid = ] 'schedule_uid' OUTPUT ]
[ ; ]

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.

[ @name = ] N'name'

Nome della pianificazione. @name è sysname, senza impostazione predefinita.

[ @enabled = ] abilitato

Indica lo stato corrente della pianificazione. @enabled è tinyint, con il valore predefinito 1 (abilitato). Se 0, la pianificazione non è abilitata. Quando la pianificazione è disabilitata, il processo non viene eseguito.

[ @freq_type = ] freq_type

Valore che indica la frequenza di esecuzione del processo. @freq_type è int e può essere uno dei valori seguenti:

Valore Descrizione
1 Una sola volta
4 Ogni giorno
8 Settimanale
16 Mensile
32 Mensile, rispetto alle @freq_interval.
64 Eseguire all'avvio del servizio SQL Server Agent.
128 Quando il computer è inattivo

[ @freq_interval = ] freq_interval

Giorno di esecuzione del processo. @freq_interval è int, con un valore predefinito , 0e dipende dal valore di @freq_type come indicato nella tabella seguente:

Valore di @freq_type Effetto sulle @freq_interval
1 (una volta) @freq_interval non è usato.
4 (giornaliero) Ogni @freq_interval giorni.
8 (settimanale) @freq_interval è uno o più dei seguenti (combinati con un OR operatore logico):

1 = Domenica
2 = Lunedì
4 = Martedì
8 = Mercoledì
16 = Giovedì
32 = Venerdì
64 = Sabato
16 (mensile) Nel @freq_interval giorno del mese.
32 (relativo mensile) @freq_interval è uno dei seguenti:

1 = Domenica
2 = Lunedì
3 = Martedì
4 = Mercoledì
5 = Giovedì
6 = Venerdì
7 = Sabato
8 = Giorno
9 = Giorno feriale
10 = Giorno del fine settimana
64 (all'avvio del servizio SQL Server Agent) @freq_interval non è usato.
128 @freq_interval non è usato.

[ @freq_subday_type = ] freq_subday_type

Specifica le unità per @freq_subday_interval. @freq_subday_type è int e può essere uno di questi valori:

Valore Descrizione (unità)
0x1 All'ora specificata
0x2 Secondi
0x4 Minuti
0x8 Ore

[ @freq_subday_interval = ] freq_subday_interval

Numero di periodi di @freq_subday_type da eseguire tra ogni esecuzione del processo. @freq_subday_interval è int, con il valore predefinito 0.

[ @freq_relative_interval = ] freq_relative_interval

Definisce ulteriormente il @freq_interval quando @freq_type è impostato su 32 (relativo mensile).

@freq_relative_interval è int e può essere uno di questi valori:

Valore Descrizione (unità)
1 First
2 Secondo
4 Terza
8 Quarta
16 Last

@freq_relative_interval indica l'occorrenza dell'intervallo. Ad esempio, se @freq_relative_interval è impostato su 2, @freq_type è impostato su 32e @freq_interval è impostato su 3, il processo pianificato verrà eseguito il secondo martedì di ogni mese.

[ @freq_recurrence_factor = ] freq_recurrence_factor

Numero di settimane o mesi tra le esecuzioni pianificate del processo. @freq_recurrence_factor è int, con un valore predefinito .0 @freq_recurrence_factor viene usato solo se @freq_type è impostato su 8, 16o 32.

[ @active_start_date = ] active_start_date

Data di inizio dell'esecuzione del processo. @active_start_date è int, con un valore predefinito .NULL La data è formattata come yyyyMMdd. Se @active_start_date è impostato, la data deve essere maggiore o uguale a 19900101.

Dopo aver creato la pianificazione, esaminare la data di inizio e verificare che sia la data corretta. Per altre informazioni, vedere la sezione "Pianificazione della data di inizio" in Creare e allegare pianificazioni ai processi.

[ @active_end_date = ] active_end_date

Data in cui l'esecuzione del processo può interrompersi. @active_end_date è int, con un valore predefinito .99991231 La data è formattata come yyyyMMdd.

[ @active_start_time = ] active_start_time

Ora in qualsiasi giorno tra @active_start_date e @active_end_date per avviare l'esecuzione del processo. @active_start_time è int, con il valore predefinito 000000. L'ora viene formattata come HHmmss in un orologio di 24 ore.

[ @active_end_time = ] active_end_time

Ora in qualsiasi giorno tra active_start_date e @active_end_date per terminare l'esecuzione del processo. @active_end_time è int, con il valore predefinito .235959 L'ora viene formattata come HHmmss in un orologio di 24 ore.

[ @schedule_id = ] schedule_id OUTPUT

Pianificare il numero di identificazione assegnato alla pianificazione se viene creato correttamente. @schedule_id è un parametro OUTPUT di tipo int.

[ @automatic_post = ] automatic_post

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.

[ @schedule_uid = ] OUTPUT 'schedule_uid'

Identificatore univoco della pianificazione. @schedule_uid è un parametro OUTPUT di tipo uniqueidentifier.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Nessuno.

Osservazioni:

È possibile gestire le pianificazioni dei processi in modo indipendente dai processi. Per aggiungere una pianificazione a un processo, usare sp_add_schedule per creare la pianificazione e sp_attach_schedule collegare la pianificazione a un processo.

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

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

Esempi

Nell'esempio seguente viene assegnata una pianificazione del processo a SaturdayReports, che viene eseguita ogni sabato alle 2:00.

EXEC msdb.dbo.sp_add_jobschedule
    @job_name = N'SaturdayReports', -- Job name
    @name = N'Weekly_Sat_2AM', -- Schedule name
    @freq_type = 8, -- Weekly
    @freq_interval = 64, -- Saturday
    @freq_recurrence_factor = 1, -- every week
    @active_start_time = 20000 -- 2:00 AM