Compartilhar via


sp_delete_jobsteplog (Transact-SQL)

Remove todos os logs de etapa de trabalho do SQL Server Agent especificados com os argumentos. Use este procedimento armazenado para manter a tabela sysjobstepslogs no banco de dados msdb.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

sp_delete_jobsteplog { [ @job_id = ] 'job_id' | [ @job_name = ] 'job_name' }
       [ , [ @step_id = ] step_id | [ @step_name = ] 'step_name' ]
       [ , [ @older_than = ] 'date' ]
       [ , [ @larger_than = ] 'size_in_bytes' ]

Argumentos

  • [ @job_id =] 'job_id'
    O número de identificação do trabalho que contém o log de etapas do trabalho a ser removido. job_id é int, com um padrão de NULL.

  • [ @job_name =] 'job_name'
    O nome do trabalho. job_name é sysname, com um padrão de NULL.

    ObservaçãoObservação

    É necessário especificar job_id ou job_name, mas não é possível especificar ambos ao mesmo tempo.

  • [ @step_id =] step_id
    O número de identificação da etapa no trabalho para o qual o log da etapa de trabalho deve ser excluído. Se não for incluído, todos os logs de etapa de trabalho desse trabalho serão excluídos a menos que @older_than ou @larger_than seja especificado. step_id é int, com um padrão de NULL.

  • [ @step_name =] 'step_name'
    O nome da etapa no trabalho para o qual o log da etapa de trabalho deve ser excluído. step_name é sysname, com um padrão de NULL.

    ObservaçãoObservação

    É possível especificar a step_id ou o step_name, mas não ambos ao mesmo tempo.

  • [ @older_than =] 'date'
    A data e hora do log de etapa de trabalho mais antigo a ser mantido. Todos os logs de etapa de trabalho mais antigos do que essa data e hora são removidos. date é datetime, com um padrão de NULL. Os dois, @older_than e @larger_than, podem ser especificados.

  • [ @larger_than =] 'size_in_bytes'
    O tamanho em bytes do maior log de etapa de trabalho a ser mantido. Todos os logs de etapa de trabalho maiores que esse serão removidos. Os dois, @larger_than e @older_than, podem ser especificados.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Conjuntos de resultados

Nenhum

Comentários

sp_delete_jobsteplog está no banco de dados msdb.

Se nenhum argumento exceto @job_id ou @job_name for especificado, todos os logs de etapa de trabalho para o trabalho especificado serão excluídos.

Permissões

Por padrão, os membros da função de servidor fixa sysadmin podem executar este procedimento armazenado. Deve ser concedida a outros usuários uma das seguintes funções de banco de dados fixas do SQL Server Agent no banco de dados msdb:

  • 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.

Somente os membros de sysadmin podem excluir um log de etapa de trabalho pertencente a outro usuário.

Exemplos

A.Removendo todos os logs de etapa de trabalho de um trabalho

O exemplo a seguir remove todos os logs de etapa do trabalho para o trabalho Weekly Sales Data Backup.

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup';
GO

B.Removendo o log de etapa de trabalho de uma determinada etapa de trabalho

O exemplo a seguir remove o logs de etapa de trabalho para a etapa 2 do trabalho Weekly Sales Data Backup.

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 2;
GO

C.Removendo todos os logs de etapa de trabalho com base em idade e tamanho

O exemplo a seguir remove todos os logs de etapa de trabalho anteriores ao meio dia de 25 de outubro de 2005 e maiores que 100 megabytes (MB) do trabalho Weekly Sales Data Backup.

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup',
    @older_than = '10/25/2005 12:00:00',
    @larger_than = 104857600;
GO

Consulte também

Referência

sp_help_jobsteplog (Transact-SQL)

Procedimentos armazenados do SQL Server Agent (Transact-SQL)