sp_add_jobschedule (Transact-SQL)

S’applique à :SQL ServerAzure SQL Managed Instance

Crée une planification pour un travail SQL Server Agent.

Conventions de la syntaxe Transact-SQL

Important

Dans Azure SQL Managed Instance, la plupart, mais pas toutes les fonctionnalités SQL Server Agent sont actuellement prises en charge. Pour plus d’informations, consultez Différences T-SQL entre Azure SQL Managed Instance et SQL Server.

Syntaxe

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 ]
[ ; ]

Arguments

[ @job_id = ] 'job_id'

Numéro d'identification du travail auquel ajouter la planification. @job_id est uniqueidentifier, avec la valeur par défaut NULL.

Vous devez spécifier @job_id ou @job_name , mais les deux ne peuvent pas être spécifiées.

[ @job_name = ] N’job_name'

Nom du travail auquel ajouter la planification. @job_name est sysname, avec la valeur par défaut NULL.

Vous devez spécifier @job_id ou @job_name , mais les deux ne peuvent pas être spécifiées.

[ @name = ] N’name'

Nom de la planification. @name est sysname, sans valeur par défaut.

[ @enabled = ] activé

Indique l'état actuel de la planification. @enabled est tinyint, avec une valeur par défaut (1activée). Si 0la planification n’est pas activée. Lorsque la planification est désactivée, le travail n’est pas exécuté.

[ @freq_type = ] freq_type

Valeur qui indique à quel moment le travail doit s'exécuter. @freq_type est int et peut être l’une des valeurs suivantes :

Valeur Description
1 Une fois
4 Quotidiennement
8 Hebdomadaire
16 Mensuelle
32 Mensuel, par rapport à @freq_interval.
64 Exécutez le démarrage du service SQL Server Agent.
128 Lancer lorsque l'ordinateur est inactif.

[ @freq_interval = ] freq_interval

Jour d'exécution du travail. @freq_interval est int, avec une valeur par défaut 0, et dépend de la valeur de @freq_type, comme indiqué dans le tableau suivant :

Valeur de @freq_type Effet sur @freq_interval
1 (une fois) @freq_interval n’est pas utilisé.
4 (quotidien) Tous les @freq_interval jours.
8 (hebdomadaire) @freq_interval est un ou plusieurs des éléments suivants (combinés à un OR opérateur logique) :

1 = Dimanche
2 = Lundi
4 = Mardi
8 = Mercredi
16 = jeudi
32 = vendredi
64 = Samedi
16 (mensuel) Le @freq_interval jour du mois.
32 (relatif mensuel) @freq_interval est l’un des éléments suivants :

1 = Dimanche
2 = Lundi
3 = Mardi
4 = Mercredi
5 = jeudi
6 = vendredi
7 = Samedi
8 = Jour
9 = Jour de la semaine
10 = Jour du week-end
64 (au démarrage du service SQL Server Agent) @freq_interval n’est pas utilisé.
128 @freq_interval n’est pas utilisé.

[ @freq_subday_type = ] freq_subday_type

Spécifie les unités de @freq_subday_interval. @freq_subday_type est int et peut être l’une des valeurs suivantes :

Valeur Description (unité)
0x1 À une heure spécifiée
0x2 Secondes
0x4 Minutes
0x8 heures

[ @freq_subday_interval = ] freq_subday_interval

Nombre de périodes @freq_subday_type à effectuer entre chaque exécution du travail. @freq_subday_interval est int, avec la valeur par défaut 0.

[ @freq_relative_interval = ] freq_relative_interval

Définit également la @freq_interval lorsque @freq_type est défini 32 sur (relatif mensuel).

@freq_relative_interval est int et peut être l’une des valeurs suivantes :

Valeur Description (unité)
1 First
2 Second
4 Third
8 Quatrième
16 Dernier

@freq_relative_interval indique l’occurrence de l’intervalle. Par exemple, si @freq_relative_interval est défini 2sur , @freq_type est défini 32sur , et @freq_interval est défini 3sur , le travail planifié se produit le deuxième mardi de chaque mois.

[ @freq_recurrence_factor = ] freq_recurrence_factor

Nombre de semaines ou de mois devant s'écouler entre chaque exécution planifiée du travail. @freq_recurrence_factor est int, avec la valeur par défaut 0. @freq_recurrence_factor est utilisé uniquement si @freq_type a la valeur 8, 16ou 32.

[ @active_start_date = ] active_start_date

Date à laquelle l’exécution du travail peut commencer. @active_start_date est int, avec une valeur par défaut de NULL. La date est mise en forme en tant que yyyyMMdd. Si @active_start_date est définie, la date doit être supérieure ou égale à 19900101.

Une fois la planification créée, passez en revue la date de début et vérifiez qu’il s’agit de la date correcte. Pour plus d’informations, consultez la section « Date de début de la planification » dans Créer et attacher des planifications à des travaux.

[ @active_end_date = ] active_end_date

Date à laquelle l’exécution du travail peut s’arrêter. @active_end_date est int, avec une valeur par défaut de 99991231. La date est mise en forme en tant que yyyyMMdd.

[ @active_start_time = ] active_start_time

Heure de tous les jours entre @active_start_date et @active_end_date pour commencer l’exécution du travail. @active_start_time est int, avec la valeur par défaut 000000. L’heure est mise en forme sur HHmmss une horloge de 24 heures.

[ @active_end_time = ] active_end_time

Heure de tous les jours entre active_start_date et @active_end_date pour mettre fin à l’exécution du travail. @active_end_time est int, avec la valeur par défaut 235959. L’heure est mise en forme sur HHmmss une horloge de 24 heures.

[ @schedule_id = ] sortie de schedule_id

Numéro d’identification de planification affecté à la planification s’il est créé avec succès. @schedule_id est un paramètre OUTPUT de type int.

[ @automatic_post = ] automatic_post

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

[ @schedule_uid = ] SORTIE 'schedule_uid'

Identificateur unique de la planification. @schedule_uid est un paramètre OUTPUT de type uniqueidentifier.

Valeurs des codes de retour

0 (réussite) ou 1 (échec).

Jeu de résultats

Aucune.

Notes

Il est désormais possible de gérer la planification des travaux indépendamment des travaux. Pour ajouter une planification à un travail, utilisez sp_add_schedule cette option pour créer la planification et sp_attach_schedule attacher la planification à un travail.

Autorisations

Cette procédure stockée appartient au rôle db_owner . Vous pouvez accorder EXECUTE des autorisations pour n’importe quel utilisateur, mais ces autorisations peuvent être remplacées lors d’une mise à niveau de SQL Server.

D’autres utilisateurs doivent disposer de l’un des rôles de base de données fixes SQL Server Agent suivants dans la msdb base de données :

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Pour en savoir plus sur les autorisations de ces rôles, consultez Rôles de base de données fixes de l'Agent SQL Server.

Exemples

L’exemple suivant affecte une planification de travail à SaturdayReports, qui s’exécute tous les samedis à 2h00.

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