Condividi tramite


sp_purge_jobhistory (Transact-SQL)

Rimuove i record della cronologia relativi a un processo.

Sintassi

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

Argomenti

  • [ @job_name= ] 'job_name'
    Nome del processo di cui si desidera eliminare i record della cronologia. job_nameè di tipo sysname e il valore predefinito è NULL. È necessario specificare l'argomento job_id oppure l'argomento job_name ma non è possibile specificarli entrambi.

    [!NOTA] I membri del ruolo predefinito del server sysadmin o del ruolo predefinito del database SQLAgentOperatorRole possono eseguire sp_purge_jobhistory senza specificare job_name o job_id. Quando questi argomenti non vengono specificati da un utente sysadmin, la cronologia per tutti i processi locali e multiserver dalla data specificata da oldest_date viene eliminata. Quando questi argomenti non vengono specificati da un utente SQLAgentOperatorRole, la cronologia per tutti i processi locali dalla data specificata da oldest_date viene eliminata.

  • [ @job_id= ] job_id
    Numero di identificazione del processo dei record da eliminare. job_id è di tipo uniqueidentifier e il valore predefinito è NULL. È necessario specificare l'argomento job_id oppure l'argomento job_name ma non è possibile specificarli entrambi. Vedere la nota all'interno della descrizione di @job_name per informazioni sull'utilizzo di questo argomento consentito agli utenti sysadmin o SQLAgentOperatorRole.
  • [ @oldest_date = ] oldest_date
    Il record meno recente da conservare nella cronologia. oldest_date è di tipo datetime e il valore predefinito è NULL. Se si specifica oldest_date, sp_purge_jobhistory rimuove solo i record precedenti al valore specificato.

Set di risultati

Nessuno

Osservazioni

Quando l'esecuzione di sp_purge_jobhistory viene completata correttamente, viene restituito un messaggio.

Autorizzazioni

Per impostazione predefinita, questa stored procedure può essere eseguita solo dai membri del ruolo predefinito del server sysadmin o dai membri del ruolo predefinito del database SQLAgentOperatorRole. I membri di sysadmin possono eliminare la cronologia per tutti i processi locali e multiserver. I membri di SQLAgentOperatorRole possono eliminare la cronologia solo per i processi locali.

Agli altri utenti, compresi i membri di SQLAgentUserRole e SQLAgentReaderRole, deve essere concessa esplicitamente l'autorizzazione EXECUTE per sp_purge_jobhistory. Dopo la concessione dell'autorizzazione EXECUTE per questa stored procedure, a tali utenti è consentito eliminare solo la cronologia dei processi di cui sono proprietari.

I ruoli predefiniti del database SQLAgentUserRole, SQLAgentReaderRole e SQLAgentOperatorRole si trovano nel database msdb. Per informazioni dettagliate sulle relative autorizzazioni, vedere Ruoli di database predefiniti di SQL Server Agent.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Esempi

A. Rimozione della cronologia di un processo specifico

Nell'esempio seguente viene rimossa la cronologia per un processo denominato NightlyBackups.

USE msdb ;
GO

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

B. Rimozione della cronologia di tutti i processi

[!NOTA] Solo i membri del ruolo predefinito del server sysadmin e i membri di SQLAgentOperatorRole possono rimuovere la cronologia di tutti i processi. Quando questa stored procedure viene eseguita senza parametri da un utente sysadmin, viene eliminata la cronologia di tutti i processi locali e multiserver. Quando questa stored procedure viene eseguita senza parametri da un utente SQLAgentOperatorRole, viene eliminata solo la cronologia di tutti i processi locali.

Nell'esempio seguente la procedura viene eseguita senza alcun parametro in modo da rimuovere tutti i record della cronologia.

USE msdb ;
GO

EXEC dbo.sp_purge_jobhistory ;
GO

Vedere anche

Riferimento

sp_help_job (Transact-SQL)
sp_help_jobhistory (Transact-SQL)
Stored procedure di sistema (Transact-SQL)
GRANT - autorizzazioni per oggetti (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005