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


sp_purge_jobhistory (Transact-SQL)

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

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

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

Синтаксис

sp_purge_jobhistory
    [ [ @job_name = ] N'job_name' ]
    [ , [ @job_id = ] 'job_id' ]
    [ , [ @oldest_date = ] oldest_date ]
[ ; ]

Аргументы

[ @job_name = ] N'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 является уникальным идентификатором по умолчаниюNULL. Необходимо указать @job_id или @job_name, но их нельзя указать.

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

[ @oldest_date = ] 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).

Разрешения

По умолчанию только члены предопределенной роли сервера 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