sp_purge_jobhistory (Transact-SQL)
Удаляет записи журнала для задания.
Синтаксис
sp_purge_jobhistory
{ [ @job_name = ] 'job_name' |
| [ @job_id = ] job_id }
[ , [ @oldest_date = ] oldest_date ]
Аргументы
[ @job_name= ] '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
Идентификационный номер задания, записи журнала для которого удаляются. Аргумент job_id имеет тип uniqueidentifier и значение по умолчанию NULL. Необходимо задать либо аргумент job_id, либо аргумент job_name, но не оба сразу. Дополнительные сведения о том, как этот аргумент могут использовать пользователи категорий sysadmin или SQLAgentOperatorRole, см. в сноске к описанию аргумента @job_name.[ @oldest_date = ] oldest_date
Самая ранняя запись регистрации, которую необходимо сохранить. Аргумент oldest_date имеет тип datetime и значение по умолчанию NULL. Когда указывается аргумент oldest_date, то sp_purge_jobhistory удаляет только записи, сделанные ранее указанной.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Результирующие наборы
Нет
Замечания
Когда процедура sp_purge_jobhistory завершается успешно, возвращается сообщение.
Разрешения
По умолчанию право на выполнение этой хранимой процедуры предоставляется только членам предопределенной роли сервера sysadmin или предопределенной роли базы данных SQLAgentOperatorRole. Члены роли sysadmin могут удалять из журнала заданий любые локальные и многосерверные задания. Члены роли SQLAgentOperatorRole могут удалять из журнала заданий только любые локальные задания.
Другим пользователям, включая членов роли SQLAgentUserRole и членов роли SQLAgentReaderRole, необходимо явно предоставлять разрешение EXECUTE для sp_purge_jobhistory. После предоставления разрешения EXECUTE на эту хранимую процедуру данные пользователи могут удалять из журнала заданий только те задания, владельцами которых они являются.
Предопределенные роли базы данных SQLAgentUserRole, SQLAgentReaderRole и SQLAgentOperatorRole размещаются в базе данных msdb. Дополнительные сведения о предоставляемых им разрешениях см. в разделе Предопределенные роли базы данных агента SQL Server.
Примеры
A. Удаление журнала конкретного задания
В следующем примере удаляется история задания с именем NightlyBackups.
USE msdb ;
GO
EXEC dbo.sp_purge_jobhistory
@job_name = N'NightlyBackups' ;
GO
Б. Удаление записи журналов для всех заданий
![]() |
---|
Удалять журналы для всех заданий могут только члены предопределенной роли сервера sysadmin и члены роли SQLAgentOperatorRole. Когда пользователи категории sysadmin выполняют эту хранимую процедуру без указания параметров, из журналов заданий удаляются все локальные и многосерверные задания. Когда пользователи категории SQLAgentOperatorRole выполняют эту хранимую процедуру без указания параметров, из журналов заданий удаляются только все локальные задания. |
В следующем примере данная процедура выполняется без указания параметров, и в результате удаляются все записи журнала.
USE msdb ;
GO
EXEC dbo.sp_purge_jobhistory ;
GO