Partilhar 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ópicoConvenções de 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 de trabalho a ser removido. job_id é int, com um padrão NULL.

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

    ObservaçãoObservação

    É necessário especificar a job_id ou o 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 NULL.

  • [ @step_name =] 'step_name'
    O nome da etapa do trabalho para o qual o log de etapa de trabalho deve ser excluído. step_name é sysname, com um padrão 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 anteriores a essa data e hora serão removidos. date é datetime, com um padrão 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 que são maiores que este tamanho sã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 para 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