sp_delete_job (Transact-SQL)

S’applique à :SQL ServerAzure SQL Managed Instance

Supprime un travail du service SQL Server Agent.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_delete_job
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @originating_server = ] N'originating_server' ]
    [ , [ @delete_history = ] delete_history ]
    [ , [ @delete_unused_schedule = ] delete_unused_schedule ]
[ ; ]

Arguments

[ @job_id = ] 'job_id'

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

@job_id ou @job_name doivent être spécifiés ; les deux ne peuvent pas être spécifiés.

[ @job_name = ] N’job_name'

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

@job_id ou @job_name doivent être spécifiés ; les deux ne peuvent pas être spécifiés.

[ @originating_server = ] N’originating_server'

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

[ @delete_history = ] delete_history

Spécifie s'il faut supprimer l'historique du travail. @delete_history est bit, avec la valeur par défaut 1.

  • Lorsque @delete_history est 1, l’historique des travaux pour le travail est supprimé.
  • Lorsque @delete_history est 0, l’historique des travaux n’est pas supprimé.

Lorsqu’un travail est supprimé et que l’historique n’est pas supprimé, les informations historiques du travail ne s’affichent pas dans l’historique des travaux de l’interface utilisateur graphique de l’Agent SQL Server, mais les informations résident toujours dans la sysjobhistory table de la msdb base de données.

[ @delete_unused_schedule = ] delete_unused_schedule

Spécifie s’il faut supprimer les planifications attachées à ce travail s’ils ne sont pas attachés à un autre travail. @delete_unused_schedule est bit, avec la valeur par défaut 1.

  • Lorsque @delete_unused_schedule est 1, les planifications attachées à ce travail sont supprimées si aucun autre travail ne référence la planification.
  • Lorsque @delete_unused_schedule est 0, les planifications ne sont pas supprimées.

Valeurs des codes de retour

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

Jeu de résultats

Aucune.

Notes

L’argument @originating_server est réservé à une utilisation interne.

L’argument @delete_unused_schedule fournit une compatibilité descendante avec les versions précédentes de SQL Server en supprimant automatiquement les planifications qui ne sont attachées à aucun travail. Ce paramètre est défini par défaut sur le comportement rétrocompatible. Pour conserver les planifications qui ne sont pas attachées à un travail, vous devez fournir la valeur 0 en tant qu’argument @delete_unused_schedule .

SQL Server Management Studio offre un moyen simple et graphique de gérer les tâches, et est recommandé pour la création et la gestion de l'infrastructure de travail.

Cette procédure stockée ne peut pas supprimer les plans de maintenance et ne peut pas supprimer des travaux qui font partie des plans de maintenance. Utilisez plutôt SQL Server Management Studio pour supprimer les plans de maintenance.

Cette procédure stockée partage le nom d’un sp_delete_job objet similaire pour le service Travaux élastiques Azure pour Azure SQL Database. Pour plus d’informations sur la version des travaux élastiques, consultez jobs.sp_delete_job (Travaux élastiques Azure) (Transact-SQL).

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.

Les membres du rôle serveur fixe sysadmin peuvent s’exécuter sp_delete_job pour supprimer n’importe quel travail. Un utilisateur qui n’est pas membre du rôle serveur fixe sysadmin ne peut supprimer que des travaux appartenant à cet utilisateur.

Exemples

L'exemple suivant supprime le travail NightlyBackups.

USE msdb;
GO

EXEC sp_delete_job
    @job_name = N'NightlyBackups';
GO