Partilhar via


sp_purge_jobhistory (Transact-SQL)

Remove os registros históricos de um trabalho.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ @job_name= ] 'job_name'
    O nome do trabalho para o qual os registros históricos serão excluídos. job_nameé sysname, com um padrão NULL. É necessário especificar a job_id ou o job_name, mas não é possível especificar ambos ao mesmo tempo.

    ObservaçãoObservação

    Os membros da função de servidor fixa sysadmin ou os membros da função de banco de dados fixa SQLAgentOperatorRole podem executar sp_purge_jobhistory sem especificar um job_name ou job_id. Quando usuários sysadmin não especificarem esses argumentos, o histórico de trabalhos de todos os trabalhos locais e multiservidor será excluído no tempo especificado por oldest_date. Quando usuários SQLAgentOperatorRole não especificarem esses argumentos, o histórico de trabalhos de todos os trabalhos locais e multiservidor será excluído no tempo especificado por oldest_date.

  • [ @job_id= ] job_id
    O número de identificação do trabalho cujos registros serão excluídos. job_idé uniqueidentifier, com um padrão NULL. É necessário especificar a job_id ou o job_name, mas não é possível especificar ambos ao mesmo tempo. Consulte a nota na descrição de @job_name para obter informações sobre como usuários sysadmin ou SQLAgentOperatorRole podem usar este argumento.

  • [ @oldest_date = ] oldest_date
    O registro mais antigo a ser retido no histórico. oldest_date é datetime, com um padrão NULL. Quando oldest_date é especificado, sp_purge_jobhistory remove somente os registros mais antigos que o valor especificado.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Conjuntos de resultados

Nenhum

Comentários

Quando sp_purge_jobhistory for concluído com êxito, uma mensagem será retornada.

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 este procedimento armazenado. Os membros de sysadmin podem limpar o histórico de trabalho de todos os trabalhos locais e multiservidor. Os membros de SQLAgentOperatorRole somente podem limpar o histórico de trabalho de todos os trabalhos locais.

Deve ser concedida explicitamente a outros usuários, inclusive membros de SQLAgentUserRole e membros de SQLAgentReaderRole, 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 banco de dados msdb. Para obter detalhes sobre suas permissões, consulte Funções de banco de dados fixas do SQL Server Agent.

Exemplos

A. 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çãoObservação

Somente membros da função de servidor fixa sysadmin e membros de SQLAgentOperatorRole podem remover o histórico de todos os trabalhos. Quando usuários sysadmin executarem este procedimento armazenado sem parâmetros, o histórico de trabalhos de todos os trabalhos locais e multiservidor será limpo. Quando usuários SQLAgentOperatorRole executarem este procedimento armazenado sem parâmetros, somente o histórico de trabalhos de todos os trabalhos locais será 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