Partage via


sp_attach_schedule (Transact-SQL)

S'applique à : SQL Server

Définit la planification d'un travail.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @job_id = ] 'job_id'

Numéro d’identification du travail auquel la planification est ajoutée. @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 la planification est ajoutée. @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.

[ @schedule_id = ] schedule_id

Numéro d'identification de la planification à définir pour le travail. @schedule_id est int, avec la valeur par défaut NULL.

@schedule_id ou @schedule_name doivent être spécifiés, mais les deux ne peuvent pas être spécifiés.

[ @schedule_name = ] N’schedule_name'

Nom de la planification à définir pour le travail. @schedule_name est sysname, avec la valeur par défaut NULL.

@schedule_id ou @schedule_name doivent être spécifiés, mais les deux ne peuvent pas être spécifiés.

[ @automatic_post = ] automatic_post

@automatic_post est bit, avec la valeur par défaut 1.

Notes

La planification et le travail doivent avoir le même propriétaire.

Une planification peut être définie pour plusieurs travaux. Un travail peut être exécuté dans plusieurs planifications.

Cette procédure stockée doit être exécutée à partir de la msdb base de données.

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

Le propriétaire du travail peut attacher un travail à une planification et détacher un travail d’une planification sans avoir à être le propriétaire de la planification. Toutefois, une planification ne peut pas être supprimée si le détachement ne le laisserait pas sans travaux, sauf si l’appelant est le propriétaire de la planification.

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.

SQL Server vérifie si l’utilisateur possède à la fois le travail et la planification.

Exemples

L'exemple suivant crée une planification nommée NightlyJobs. Les travaux qui utilisent cette planification s'exécutent tous les jours lorsque l'heure indiquée par le serveur est 01:00. L'exemple joint la planification au travail BackupDatabase et au travail RunReports.

Remarque

Cet exemple suppose que les travaux BackupDatabase et RunReports existent déjà.

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