Partilhar via


sp_delete_job (Transact-SQL)

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

Exclui um trabalho do serviço SQL Server Agent.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

@job_id [ = ] 'job_id'

O número de identificação do trabalho a ser excluído. @job_id é uniqueidentifier, com um padrão de NULL.

Tanto @job_id quanto @job_name devem ser especificados; ambos não podem ser especificados.

@job_name [ = ] N'job_name'

O nome do trabalho a ser excluído. @job_name é sysname, com um padrão de NULL.

Tanto @job_id quanto @job_name devem ser especificados; ambos não podem ser especificados.

@originating_server [ = ] N'originating_server'

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

@delete_history [ = ] delete_history

Especifica se o histórico do trabalho deve ser excluído. @delete_history é bit, com um padrão de 1.

  • Quando @delete_history é 1, o histórico de trabalhos do trabalho é excluído.
  • Quando @delete_history é 0, o histórico de trabalhos não é excluído.

Quando um trabalho é excluído e o histórico não é excluído, as informações históricas do trabalho não são exibidas no histórico de trabalhos da interface gráfica do usuário do SQL Server Agent, mas as informações ainda residem na sysjobhistory tabela no msdb banco de dados.

@delete_unused_schedule [ = ] delete_unused_schedule

Especifica se as agendas anexadas a esse trabalho devem ser excluídas se elas não estiverem anexadas a nenhum outro trabalho. @delete_unused_schedule é bit, com um padrão de 1.

  • Quando @delete_unused_schedule é 1, as agendas anexadas a esse trabalho serão excluídas se nenhuma outra tarefa fizer referência à agenda.
  • Quando @delete_unused_schedule é 0, as agendas não são excluídas.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Conjunto de resultados

Nenhum.

Comentários

O argumento @originating_server é reservado para uso interno.

O argumento @delete_unused_schedule fornece compatibilidade com versões anteriores do SQL Server removendo automaticamente agendas que não estão anexadas a nenhum trabalho. Esse parâmetro usa como padrão o comportamento compatível com versões anteriores. Para reter agendas que não estão anexadas a um trabalho, você deve fornecer o valor 0 como o argumento @delete_unused_schedule .

O SQL Server Management Studio fornece um modo gráfico fácil de gerenciar trabalhos e é o modo recomendado de criar e gerenciar a infra-estrutura de trabalho.

Esse procedimento armazenado não pode excluir planos de manutenção e não pode excluir trabalhos que fazem parte de planos de manutenção. Em vez disso, use o SQL Server Management Studio para excluir planos de manutenção.

Esse procedimento armazenado compartilha o nome de sp_delete_job com um objeto semelhante para o serviço de Trabalhos Elásticos do Azure para Banco de Dados SQL do Azure. Para obter informações sobre a versão dos trabalhos elásticos, consulte jobs.sp_delete_job (Trabalhos Elásticos do Azure).

Permissões

Esse procedimento armazenado pertence à função db_owner . Você pode conceder EXECUTE permissões para qualquer usuário, mas essas permissões podem ser substituídas durante uma atualização do SQL Server.

Outros usuários devem receber uma das seguintes funções de banco de dados fixas do msdb SQL Server Agent no banco de dados:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Para obter detalhes sobre as permissões dessas funções, consulte Funções de banco de dados fixas do SQL Server Agent.

Os membros da função de servidor fixa sysadmin podem ser executados sp_delete_job para excluir qualquer trabalho. Um usuário que não é membro da função de servidor fixa sysadmin só pode excluir trabalhos pertencentes a esse usuário.

Exemplos

O exemplo a seguir exclui o trabalho NightlyBackups.

USE msdb;
GO

EXEC sp_delete_job
    @job_name = N'NightlyBackups';
GO