sp_detach_schedule (Transact-SQL)

S’applique à :SQL Server

Supprime l'association entre une planification et un travail.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @job_id = ] 'job_id'

Numéro d'identification du travail à partir duquel supprimer la planification. @job_id est uniqueidentifier, avec la valeur par défaut NULL.

[ @job_name = ] N’job_name'

Nom du travail à partir duquel supprimer la planification. @job_name est sysname, avec la valeur par défaut NULL.

Remarque

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 à supprimer du travail. @schedule_id est int, avec la valeur par défaut NULL.

[ @schedule_name = ] N’schedule_name'

Nom de la planification à supprimer du travail. @schedule_name est sysname, avec la valeur par défaut NULL.

Remarque

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

[ @delete_unused_schedule = ] delete_unused_schedule

Spécifie si les planifications de travail inutilisées doivent être supprimées. @delete_unused_schedule est bit, avec la valeur par défaut 0.

  • Si la valeur est définie 0, toutes les planifications sont conservées, même si aucun travail ne les référence.
  • Si la valeur est définie 1, les planifications de travaux inutilisées sont supprimées si aucun travail ne les référence.

[ @automatic_post = ] automatic_post

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

Valeurs des codes de retour

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

Jeu de résultats

None

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.

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 le laisserait sans travaux, sauf si l’appelant est le propriétaire de la planification.

Seuls les membres de sysadmin peuvent utiliser cette procédure stockée pour modifier les attributs des travaux appartenant à d’autres utilisateurs.

SQL Server case activée pour déterminer si l’utilisateur possède la planification. Seuls les membres du rôle serveur fixe sysadmin peuvent détacher les planifications des travaux appartenant à un autre utilisateur.

Exemples

L'exemple ci-dessous supprime l'association entre une planification NightlyJobs et un travail BackupDatabase.

USE msdb;
GO

EXEC dbo.sp_detach_schedule
    @job_name = 'BackupDatabase',
    @schedule_name = 'NightlyJobs';
GO