sp_purge_jobhistory (Transact-SQL)

Применимо к:SQL Server Управляемый экземпляр SQL Azure

Удаляет записи журнала для задания в службе агент SQL Server.

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

Синтаксис

sp_purge_jobhistory   
   {   [ @job_name = ] 'job_name' |   
     | [ @job_id = ] job_id }  
   [ , [ @oldest_date = ] oldest_date ]  

Аргументы

@job_name

Имя задания, для которого удаляются записи журнала. job_name имеет имя sysname с значением NULL по умолчанию. Необходимо указать job_id или job_name, но их нельзя указать.

Примечание.

Члены предопределенной роли сервера sysadmin или члены предопределенной роли базы данных SQLAgentOperatorRole могут выполняться sp_purge_jobhistory без указания job_name или job_id. Если пользователи sysadmin не указывают эти аргументы, журнал заданий для всех локальных и многосерверных заданий удаляется в течение указанного oldest_date времени. Если пользователи SQLAgentOperatorRole не указывают эти аргументы, журнал заданий для всех локальных заданий удаляется в течение времени, указанного oldest_date.

@job_id

Идентификатор задания, для которого удаляются записи. job_id является уникальным идентификатором по умолчаниюNULL. Необходимо указать job_id или job_name, но их нельзя указать.

См. примечание в описании @job_name сведения о том, как пользователи sysadmin или SQLAgentOperatorRole могут использовать этот аргумент.

@oldest_date

Самая ранняя запись журнала, которую необходимо сохранить. oldest_date — datetime с значением по умолчаниюNULL. При указании sp_purge_jobhistory oldest_date удаляет только записи, которые старше указанного значения.

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

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

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

нет

Замечания

После sp_purge_jobhistory успешного завершения возвращается сообщение.

Эта хранимая процедура использует имя аналогичного sp_purge_jobhistory объекта для службы заданий Elastic Azure для База данных SQL Azure. Сведения о версии эластичных заданий см. в разделе jobs.sp_purge_jobhistory (задания Эластичных баз данных Azure) (Transact-SQL).

Разрешения

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

Члены sysadmin могут очистить журнал заданий для всех локальных и многосерверных заданий. Члены SQLAgentOperatorRole могут очистить журнал заданий только для всех локальных заданий.

Другим пользователям, включая членов SQLAgentUserRole и членов SQLAgentReaderRole, необходимо явно предоставить разрешение EXECUTE на sp_purge_jobhistory. После предоставления разрешения EXECUTE на эту хранимую процедуру данные пользователи могут удалять из журнала заданий только те задания, владельцами которых они являются.

Предопределенные роли базы данных SQLAgentUserRole, SQLAgentReaderRole и SQLAgentOperatorRole находятся в msdb базе данных. Дополнительные сведения о своих разрешениях см. в разделе агент SQL Server предопределенных ролей базы данных.

Примеры

А. Удаление журнала конкретного задания

В следующем примере удаляется история задания с именем NightlyBackups.

USE msdb ;  
GO  
  
EXEC dbo.sp_purge_jobhistory  
    @job_name = N'NightlyBackups' ;  
GO  

B. Удаление записи журналов для всех заданий

Примечание.

Только члены предопределенной роли сервера sysadmin и члены SQLAgentOperatorRole могут удалять журнал для всех заданий. Когда пользователи sysadmin выполняют эту хранимую процедуру без параметров, журнал заданий для всех локальных и многосерверных заданий очищается. Когда пользователи SQLAgentOperatorRole выполняют эту хранимую процедуру без параметров, удаляется только журнал заданий для всех локальных заданий.

В следующем примере данная процедура выполняется без указания параметров, и в результате удаляются все записи журнала.

USE msdb ;  
GO  
  
EXEC dbo.sp_purge_jobhistory ;  
GO  

Следующие шаги