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