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


sp_delete_jobsteplog (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

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 ]
[ ; ]

Аргументы

[ @job_id = ] 'job_id'

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

Необходимо указать @job_id или @job_name, но их нельзя указать.

[ @job_name = ] N'job_name'

Имя задания. @job_name — sysname с значением по умолчаниюNULL.

Необходимо указать @job_id или @job_name, но их нельзя указать.

[ @step_id = ] step_id

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

Можно указать @step_id или @step_name, но их нельзя указать.

[ @step_name = ] N'step_name'

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

Можно указать @step_id или @step_name, но их нельзя указать.

[ @older_than = ] older_than

Дата и время создания старейшего сохраняемого журнала шагов задания. @older_than — datetime с значением по умолчаниюNULL. Удаляются все журналы шагов задания старше указанной даты и времени.

Можно указать как @older_than, так и @larger_than.

[ @larger_than = ] larger_than

Размер в байтах самого большого сохраняемого журнала шагов задания. @larger_than имеет значение int с значением по умолчаниюNULL. Удаляются все журналы шагов задания, размер которых превышает указанный.

Можно указать как @older_than, так и @larger_than.

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

0 (успешно) или 1 (сбой).

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

Нет.

Замечания

sp_delete_jobsteplog находится в msdb базе данных.

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

Разрешения

Вы можете предоставить EXECUTE разрешения для этой процедуры, но эти разрешения могут быть переопределены во время обновления SQL Server.

Другим пользователям необходимо предоставить одну из следующих агент 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

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

В следующем примере удаляется журнал для шага 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