Partilhar via


sp_delete_job (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL Managed Instance

Apaga um trabalho do serviço SQL Server Agent.

Transact-SQL convenções de sintaxe

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

Arguments

[ @job_id = ] 'job_id'

O número de identificação do trabalho a ser eliminado. @job_id é um identificador único, com um padrão de NULL.

Deve ser especificado @job_id ou @job_name ; Nenhum dos dois pode ser especificado.

[ @job_name = ] N'job_name'

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

Deve ser especificado @job_id ou @job_name ; Nenhum dos dois pode ser especificado.

[ @originating_server = ] N'originating_server'

Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.

[ @delete_history = ] delete_history

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

  • Quando @delete_history1é , o histórico do emprego é apagado.
  • Quando @delete_history0é , o histórico do emprego não é apagado.

Quando um trabalho é eliminado e o histórico não é eliminado, a informação histórica do trabalho não aparece no histórico da interface gráfica do SQL Server Agent, mas a informação continua a residir na sysjobhistory tabela da msdb base de dados.

[ @delete_unused_schedule = ] delete_unused_schedule

Especifica se deve apagar os horários associados a este trabalho se não estiverem ligados a nenhum outro trabalho. @delete_unused_schedule é bit, com um padrão de 1.

  • Quando @delete_unused_schedule1é , os horários associados a este trabalho são eliminados se nenhum outro trabalho fizer referência ao horário.
  • Quando @delete_unused_schedule0é , os horários não são apagados.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Conjunto de resultados

Nenhum.

Observações

O argumento @originating_server está reservado para uso interno.

O argumento do @delete_unused_schedule proporciona compatibilidade retroativa com versões anteriores do SQL Server ao remover automaticamente agendamentos que não estão associados a nenhum trabalho. Este parâmetro corresponde por defeito ao comportamento retrocompatível. Para manter horários que não estão associados a um trabalho, deve apresentar o valor 0 como argumento @delete_unused_schedule .

O SQL Server Management Studio fornece uma maneira gráfica fácil de gerenciar trabalhos e é a maneira recomendada de criar e gerenciar a infraestrutura de trabalho.

Este procedimento armazenado não pode apagar planos de manutenção, nem tarefas que fazem parte dos planos de manutenção. Em vez disso, use o SQL Server Management Studio para eliminar planos de manutenção.

Este procedimento armazenado partilha o nome de sp_delete_job com um objeto semelhante para o serviço Azure Elastic Jobs para Azure SQL Database. Para informações sobre a versão do Elastic Jobs, veja jobs.sp_delete_job (Azure Elastic Jobs).

Permissions

Pode conceder EXECUTE permissões neste procedimento, mas essas permissões podem ser anuladas durante uma atualização do SQL Server.

Outros utilizadores devem receber um dos seguintes papéis fixos de base de dados SQL Server Agent na msdb base de dados:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Para detalhes sobre as permissões destes papéis, consulte Funções de Base de Dados Fixas do Agente SQL Server.

Os membros do papel fixo de servidor sysadmin podem executar sp_delete_job para eliminar qualquer tarefa. Um utilizador que não seja membro do papel fixo de sysadmin do servidor só pode apagar trabalhos pertencentes a esse utilizador.

Examples

O exemplo seguinte elimina a tarefa NightlyBackups.

USE msdb;
GO

EXECUTE sp_delete_job @job_name = N'NightlyBackups';
GO