sp_purge_jobhistory (Transact-SQL)
Aplica-se a: SQL Server Instâ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 = ] N'job_name' ]
[ , [ @job_id = ] 'job_id' ]
[ , [ @oldest_date = ] oldest_date ]
[ ; ]
Argumentos
@job_name [ = ] N'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
. Tanto @job_id quanto @job_name devem ser especificados, mas ambos não podem ser especificados.
Os 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 de todos os trabalhos locais e multisservidores é excluído dentro do tempo especificado pelo @oldest_date. Quando os usuários SQLAgentOperatorRole não especificam esses argumentos, o histórico de trabalhos de todos os trabalhos locais é excluído dentro do tempo especificado pelo @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 de NULL
. Tanto @job_id quanto @job_name devem ser especificados, 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 [ = ] 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 mais antigos que o valor especificado.
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Conjunto de resultados
Nenhum.
Comentários
Quando sp_purge_jobhistory
concluído com êxito, uma mensagem é retornada.
Esse procedimento armazenado compartilha o nome de sp_purge_jobhistory
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_purge_jobhistory (Trabalhos Elásticos do Azure).
Permissões
Por padrão, somente os 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 tarefas para todas as tarefas locais e multisservidor. Os membros do SQLAgentOperatorRole podem limpar o histórico de trabalhos apenas 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
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 tarefas de todos os trabalhos locais e multisservidor é limpo. Quando os usuários SQLAgentOperatorRole executam esse procedimento armazenado sem parâmetros, somente o histórico de trabalhos 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