Compartilhar via


sp_purge_jobhistory (Transact-SQL)

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

Remove os registros de histórico de um trabalho no serviço SQL Server Agent.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_purge_jobhistory   
   {   [ @job_name = ] 'job_name' |   
     | [ @job_id = ] job_id }  
   [ , [ @oldest_date = ] oldest_date ]  

Argumentos

@job_name

O nome do trabalho para o qual os registros históricos serão excluídos. job_name é sysname, com um padrão de NULL. Devem ser especificados job_id ou job_name , mas ambos não podem ser especificados.

Observação

Membros da função de servidor fixa sysadmin ou membros da função de banco de dados fixa SQLAgentOperatorRole podem ser executados sp_purge_jobhistory sem especificar um job_name ou job_id. Quando os usuários sysadmin não especificam esses argumentos, o histórico de trabalhos para todos os trabalhos locais e multisservidor é excluído dentro do tempo especificado por oldest_date. Quando os usuários SQLAgentOperatorRole não especificam esses argumentos, o histórico de trabalho para todos os trabalhos locais é excluído dentro do tempo especificado por oldest_date.

@job_id

O número de identificação do trabalho cujos registros serão excluídos. job_id é uniqueidentifier, com um padrão de NULL. Devem ser especificados job_id ou job_name , mas ambos não podem ser especificados.

Consulte a observação na descrição do @job_name para obter informações sobre como os usuários sysadmin ou SQLAgentOperatorRole podem usar esse argumento.

@oldest_date

O registro mais antigo a ser retido no histórico. oldest_date é datetime, com um padrão de NULL. Quando oldest_date é especificado, sp_purge_jobhistory remove apenas os registros que são mais antigos do que o valor especificado.

Valores do código de retorno

0 (sucesso) ou 1 (fracasso)

Conjuntos de resultados

Nenhum

Comentários

Quando sp_purge_jobhistory concluída com êxito, uma mensagem é retornada.

Este procedimento armazenado compartilha o nome de com um objeto semelhante para o serviço Azure Elastic Jobs para Banco de sp_purge_jobhistory Dados SQL do Azure. Para obter informações sobre a versão de trabalhos elásticos, consulte jobs.sp_purge_jobhistory (Azure Elastic Jobs) (Transact-SQL).

Permissões

Por padrão, somente membros da função de servidor fixa sysadmin ou da função de banco de dados fixa SQLAgentOperatorRole podem executar esse procedimento armazenado.

Os membros do sysadmin podem limpar o histórico de trabalhos para todos os trabalhos locais e multisservidor. Os membros do SQLAgentOperatorRole podem limpar o histórico de trabalho somente para todos os trabalhos locais.

Outros usuários, incluindo membros de SQLAgentUserRole e membros de SQLAgentReaderRole, devem receber explicitamente a permissão EXECUTE em sp_purge_jobhistory. Depois de receber a permissão EXECUTE nesse procedimento armazenado, esses usuários poderão limpar somente o histórico dos trabalhos que eles possuam.

As funções de banco de dados fixas SQLAgentUserRole, SQLAgentReaderRole e SQLAgentOperatorRole estão no msdb banco de dados. Para obter detalhes sobre suas permissões, consulte Funções de banco de dados fixas do SQL Server Agent.

Exemplos

R. Remover histórico de um trabalho específico

O exemplo a seguir remove o histórico de um trabalho denominado NightlyBackups.

USE msdb ;  
GO  
  
EXEC dbo.sp_purge_jobhistory  
    @job_name = N'NightlyBackups' ;  
GO  

B. Remover histórico de todos os trabalhos

Observação

Somente membros da função de servidor fixa sysadmin e membros do SQLAgentOperatorRole podem remover o histórico de todos os trabalhos. Quando os usuários sysadmin executam esse procedimento armazenado sem parâmetros, o histórico de trabalhos para todos os trabalhos locais e multisservidor é limpo. Quando os usuários SQLAgentOperatorRole executam esse procedimento armazenado sem parâmetros, somente o histórico de trabalho de todos os trabalhos locais é limpo.

O exemplo a seguir executa o procedimento sem parâmetros para remover todos os registros históricos.

USE msdb ;  
GO  
  
EXEC dbo.sp_purge_jobhistory ;  
GO  

Próximas etapas