sp_add_schedule (Transact-SQL)
Crea una pianificazione che può essere utilizzata da un numero qualsiasi di processi.
Convenzioni della sintassi Transact-SQL
Sintassi
sp_add_schedule [ @schedule_name = ] 'schedule_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 ]
[ , [ @owner_login_name = ] 'owner_login_name' ]
[ , [ @schedule_uid = ] schedule_uid OUTPUT ]
[ , [ @schedule_id = ] schedule_id OUTPUT ]
[ , [ @originating_server = ] server_name ] /* internal */
Argomenti
[ @schedule_name = ] 'schedule_name'
Nome della pianificazione. schedule_nameè di tipo sysname e non prevede alcun valore predefinito.[ @enabled = ] enabled
Indica lo stato corrente della pianificazione. enabledè di tipo tinyint e il valore predefinito è 1 (abilitato). Se il valore è uguale a 0, la pianificazione non è abilitata. Quando la pianificazione non è abilitata, non viene eseguito alcun processo su questa pianificazione.[ @freq_type = ] freq_type
Valore che indica la frequenza di esecuzione di un processo freq_typeè di tipo int e il valore predefinito è 0. I valori possibili sono i seguenti.Valore
Descrizione
1
Una volta sola
4
Giornaliera
8
Settimanale
16
Mensile
32
Mensile, relativa a freq_interval
64
All'avvio del servizio SQLServerAgent
128
Quando il computer è inattivo
[ @freq_interval = ] freq_interval
Giorni in cui un processo viene eseguito. freq_interval è di tipo int, il valore predefinito è 1 e dipende dal valore di freq_type.Valore di freq_type
Effetto su freq_interval
1 (una volta)
freq_interval non viene utilizzato.
4 (giornaliera)
Ogni numero di giorni corrispondente a freq_interval.
8 (settimanale)
freq_interval corrisponde ad almeno uno dei valori seguenti combinati tramite l'operatore logico OR:
1 = domenica
2 = lunedì
4 = martedì
8 = mercoledì
16 = giovedì
32 = venerdì
64 = sabato
16 (mensile)
Il giorno del mese corrispondente a freq_interval.
32 (frequenza mensile relativa)
freq_interval corrisponde a uno dei valori seguenti:
1 = domenica
2 = lunedì
3 = martedì
4 = mercoledì
5 = giovedì
6 = venerdì
7 = sabato
8 = giorno
9 = giorno feriale
10 = giorno festivo
64 (all'avvio del servizio SQLServerAgent)
freq_interval non viene utilizzato.
128
freq_interval non viene utilizzato.
[ @freq_subday_type = ] freq_subday_type
Specifica le unità per freq_subday_interval. freq_subday_typeè di tipo int e il valore predefinito è 0. I valori possibili sono i seguenti.Valore
Descrizione (unità)
0x1
All'ora specificata
0x2
Secondi
0x4
Minuti
0x8
Ore
[ @freq_subday_interval = ] freq_subday_interval
Numero di periodi freq_subday_type che devono intercorrere tra ogni esecuzione di un processo. freq_subday_intervalè di tipo int e il valore predefinito è 0. Nota: l'intervallo dovrebbe superare i 10 secondi. freq_subday_interval viene ignorato nei casi in cui freq_subday_type è uguale a 1.[ @freq_relative_interval = ] freq_relative_interval
Occorrenza di freq_interval di un processo ogni mese, se freq_interval è uguale a 32 (mensile relativo). freq_relative_intervalè di tipo int e il valore predefinito è 0. I possibili valori sono i seguenti. freq_relative_interval viene ignorato nei casi in cui freq_type non è uguale a 32.Valore
Descrizione (unità)
1
First
2
Secondo
4
Terzo
8
Quarto
16
Last
[ @freq_recurrence_factor = ] freq_recurrence_factor
Numero di settimane o mesi tra le esecuzioni pianificate di un processo. freq_recurrence_factor viene utilizzato solo se freq_type è impostato su 8, 16 o 32. freq_recurrence_factorè di tipo int e il valore predefinito è 0.[ @active_start_date = ] active_start_date
Data dalla quale è possibile avviare l'esecuzione del processo. active_start_dateè di tipo int e il valore predefinito è NULL che indica la data odierna. La data è nel formato AAAAMMGG. Se active_start_date è diverso da NULL, la data deve essere maggiore o uguale a 19900101.Al termine della creazione della pianificazione, esaminare la data di inizio per verificare che corrisponda alla data corretta. Per ulteriori informazioni, vedere la sezione relativa alla data di inizio della pianificazione in Creazione e collegamento di pianificazioni ai processi.
Per le pianificazioni settimanali o mensili, tramite Agent viene ignorato se la data di active_start_date è già passata e viene invece utilizzata la data corrente. Quando una pianificazione di SQL Agent viene creata utilizzando sp_add_schedule è possibile specificare il parametro active_start_date che rappresenta la data di avvio dell'esecuzione del processo. Se il tipo di pianificazione è settimanale o mensile e il parametro active_start_date è impostato su una data già trascorsa, il parametro active_start_date viene ignorato e la data corrente verrà utilizzata per active_start_date.
[ @active_end_date = ] active_end_date
Data dalla quale è possibile arrestare l'esecuzione del processo. active_end_dateè di tipo int e il valore predefinito è 99991231 che indica il 31 dicembre 9999. La data è nel formato AAAAMMGG.[ @active_start_time = ] active_start_time
Ora di uno dei giorni compresi tra le date active_start_date e active_end_date in cui avviare l'esecuzione di un processo. active_start_timeè di tipo int e il valore predefinito è 000000 che indica le ore 12.00.00 nel formato a 24 ore e deve essere immesso nel formato HHMMSS.[ @active_end_time = ] active_end_time
Ora di uno dei giorni compresi tra le date active_start_date e active_end_date in cui terminare l'esecuzione di un processo. active_end_timeè di tipo int e il valore predefinito è 235959 che indica le ore 23.59.59 nel formato a 24 ore e deve essere immesso nel formato HHMMSS.[ @owner_login_name= ] 'owner_login_name'
Nome dell'entità server proprietaria della pianificazione. owner_login_name è di tipo sysname e il valore predefinito è NULL che indica che la pianificazione è di proprietà dell'autore.[ @schedule_uid= ] schedule_uidOUTPUT
Identificatore univoco della pianificazione. schedule_uid è una variabile di tipo uniqueidentifier.[ @schedule_id= ] schedule_idOUTPUT
Identificatore della pianificazione. schedule_id è una variabile di tipo int.[ @originating_server= ] server_name
Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Set di risultati
Nessuno
Osservazioni
SQL Server Management Studio include un semplice strumento grafico per la gestione dei processi ed è lo strumento consigliato per la creazione e la gestione dell'infrastruttura dei processi.
Autorizzazioni
Per impostazione predefinita, questa stored procedure può essere eseguita dai membri del ruolo predefinito del server sysadmin. Gli altri utenti devono appartenere a uno dei seguenti ruoli predefiniti del database di SQL Server Agent nel database msdb:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
Per informazioni sulle autorizzazioni di questi ruoli, vedere Ruoli di database predefiniti di SQL Server Agent.
Esempi
A.Creazione di una pianificazione
Nell'esempio seguente viene creata una pianificazione denominata RunOnce. La pianificazione viene eseguita una volta, alle 23:30 del giorno in cui è stata creata.
USE msdb ;
GO
EXEC dbo.sp_add_schedule
@schedule_name = N'RunOnce',
@freq_type = 1,
@active_start_time = 233000 ;
GO
B.Creazione di una pianificazione e associazione della pianificazione a più processi
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
Vedere anche
Riferimento
Stored procedure di SQL Server Agent (Transact-SQL)
sp_add_jobschedule (Transact-SQL)
sp_update_schedule (Transact-SQL)
sp_delete_schedule (Transact-SQL)
sp_help_schedule (Transact-SQL)
sp_attach_schedule (Transact-SQL)