Поделиться через


sp_delete_jobsteplog (Transact-SQL)

Удаляет все журналы шагов заданий для агента SQL Server, заданные аргументами. Эта хранимая процедура применяется для поддержки таблицы sysjobstepslogs в базе данных msdb.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

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' ]

Аргументы

  • [ @job_id =] 'job_id'
    Идентификационный номер задания, содержащего журнал шагов задания, который необходимо удалить. Аргумент job_id имеет тип int и значение по умолчанию NULL.

  • [ @job_name =] 'job_name'
    Имя задания. Аргумент job_name имеет тип sysname и значение по умолчанию NULL.

    Примечание

    Обязательно должен быть задан один из этих двух аргументов, но аргументы job_id и job_name не должны быть заданы одновременно.

  • [ @step_id =] step_id
    Идентификационный номер шага задания, журнал которого планируется удалить. Если этот аргумент не включен, удаляются все журналы шагов заданий, если не задан аргумент @older_than или @larger_than. Аргумент step_id имеет тип int и значение по умолчанию NULL.

  • [ @step_name =] 'step_name'
    Имя шага задания, журнал которого необходимо удалить. Аргумент step_name имеет тип sysname и значение по умолчанию NULL.

    Примечание

    Может быть задан только один из аргументов step_id и step_name.

  • [ @older_than =] 'date'
    Дата и время создания старейшего сохраняемого журнала шагов задания. Удаляются все журналы шагов задания старше указанной даты и времени. Аргумент date имеет тип datetime и значение по умолчанию NULL. Аргументы @older_than и @larger_than могут быть заданы одновременно.

  • [ @larger_than =] 'size_in_bytes'
    Размер в байтах самого большого сохраняемого журнала шагов задания. Удаляются все журналы шагов задания, размер которых превышает указанный. Аргументы @larger_than и @older_than могут быть заданы одновременно.

Значения кода возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Нет

Замечания

Хранимая процедура sp_delete_jobsteplog принадлежит базе данных msdb.

Если не заданы никакие аргументы, кроме @job_id или @job_name, то удаляются все журналы шагов для указанного задания.

Разрешения

По умолчанию эту хранимую процедуру могут выполнять только члены предопределенной роли сервера sysadmin. Другим пользователям должна быть предоставлена одна из следующих предопределенных ролей базы данных агента SQL Server в базе данных msdb.

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole.

Подробные сведения о разрешениях для этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.

Удалять журналы шагов задания, принадлежащие другим пользователям, могут только члены роли sysadmin.

Примеры

А.Удаление всех журналов шагов определенного задания

В следующем примере удаляются все журналы шагов задания Weekly Sales Data Backup.

USE msdb ;
GO

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

Б.Удаление журнала определенного шага задания

В следующем примере удаляется журнал для шага 2 задания Weekly Sales Data Backup.

USE msdb ;
GO

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

В.Удаление всех журналов шагов задания по дате создания и размеру

В следующем примере удаляются все журналы шагов задания Weekly Sales Data Backup, созданные до полудня 25 октября 2005 года, размер которых превышает 100 МБ.

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

См. также

Справочник

sp_help_jobsteplog (Transact-SQL)

Хранимые процедуры агента SQL Server (Transact-SQL)