Partilhar via


sp_delete_jobsteplog (Transact-SQL)

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

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

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_delete_jobsteplog
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @step_id = ] step_id ]
    [ , [ @step_name = ] N'step_name' ]
    [ , [ @older_than = ] older_than ]
    [ , [ @larger_than = ] larger_than ]
[ ; ]

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 é uniqueidentifier, com um padrão de NULL.

Tanto @job_id quanto @job_name devem ser especificados, mas ambos não podem ser especificados.

@job_name [ = ] N'job_name'

O nome do trabalho. @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.

@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. @step_id é int, com um padrão de NULL. Se não for incluído, todos os logs de etapa de trabalho no trabalho serão excluídos, a menos que @older_than ou @larger_than sejam especificados.

Tanto @step_id quanto @step_name podem ser especificados, mas ambos não podem ser especificados.

@step_name [ = ] N'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.

Tanto @step_id quanto @step_name podem ser especificados, mas ambos não podem ser especificados.

@older_than [ = ] older_than

A data e hora do log de etapa de trabalho mais antigo a ser mantido. @older_than é datetime, com um padrão de NULL. Todos os logs de etapa de trabalho mais antigos do que essa data e hora são removidos.

Tanto @older_than quanto @larger_than podem ser especificados.

@larger_than [ = ] larger_than

O tamanho em bytes do maior log de etapa de trabalho a ser mantido. @larger_than é int, com um padrão de NULL. Todos os logs de etapa de trabalho maiores que esse serão removidos.

Tanto @older_than quanto @larger_than podem ser especificados.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Conjunto de resultados

Nenhum.

Comentários

sp_delete_jobsteplog está no msdb banco de dados.

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

Esse procedimento armazenado pertence à função db_owner . Você pode conceder EXECUTE permissões para qualquer usuário, mas essas permissões podem ser substituídas durante uma atualização do SQL Server.

Outros usuários devem receber uma das seguintes funções de banco de dados fixas do msdb SQL Server Agent no banco de dados:

  • 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 membros do sysadmin podem excluir um log de etapas de trabalho que pertence a outro usuário.

Exemplos

R. Remover todos os logs de etapas 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. Remover o log da etapa de trabalho de uma etapa de trabalho específica

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. Remover todos os logs de etapas de trabalho com base na idade e no 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